Применение многоточия
Использование Bootstrap:
Если вы используете Bootstrap, вы можете применить класс text-truncate
для добавления многоточия к любому тексту, например:
<span id="ellipsis-ex" class="d-inline-block text-truncate" style="max-width: 150px;">
Praeterea iter est quasdam res quas ex communi.
</span>
Используя простой CSS:
Иначе, вы можете определить соответствующий класс для генерации многоточия, как вы упомянули в вопросе:
.text-truncate {
display: inline-block;
max-width: 150px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Результат:
.text-truncate {
display: inline-block;
max-width: 150px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<span class="text-truncate" style="max-width: 150px;">
Praeterea iter est quasdam res quas ex communi.
</span>
Переключение многоточия
Использование обычного JS:
Чтобы переключить класс с использованием чистого JS, используйте
var element = document.querySelector("ellipsis-ex");
element.classList.toggle("text-truncate");
Вы также можете использовать функции classList.add("#ellipsis-ex")
и classList.remove("ellipsis-ex")
, чтобы специально добавить или удалить класс
Angular
Читая ваш вопрос, кажется, вы работаете сТаким образом, вы можете использовать встроенную директиву class
для переключения класса в самом шаблоне.
<!-- toggleEllipses is a boolean indicating ellipsis status -->
<span id="ellipsis-ex" [class.text-truncate]="toggleEllipses" style="max-width: 150px;">
Praeterea iter est quasdam res quas ex communi.
</span>
Результат:
var element = document.querySelector("#ellipsis-ex");
function toggleEllipsis() {
element.classList.toggle("text-truncate");
}
.text-truncate {
display: inline-block;
max-width: 150px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<span id="ellipsis-ex" class="text-truncate" style="max-width: 150px;" onclick="toggleEllipsis()">
Praeterea iter est quasdam res quas ex communi.
</span>