Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2021, 12:50
Новичок на форуме
Отправить личное сообщение для mediafoks Посмотреть профиль Найти все сообщения от mediafoks
 
Регистрация: 07.04.2021
Сообщений: 5

Показать - спрятать длинный текст
Добрый день, уважаемые разработчики!
Имеется параграф с длинным текстом:
<p class="paragraph">ipsum dolor sit amet consectetur adipisicing elit. Labore enim explicabo accusamus
                eveniet illum possimus nam veniam debitis omnis suscipit ex officiis praesentium harum laborum neque
                culpa, ipsam porro! Quisquam officiis distinctio excepturi autem quo eligendi adipisci, mollitia
                quibusdam rem id dolore magnam, eius minima saepe aspernatur possimus laborum facere!</p>


Задача:
Если длина параграфа больше "N" символов, то обрезать его до "N" символов и в конце добавить троеточие, и при клике на сам параграф показывать отрезанное содержимое (т.е. весь параграф целиком). А при повторном клике опять скрывать. Нечто типа спойлера.
Обрезку я сделал так:
var cropTxt = document.querySelector('.paragraph')
 
String.prototype.trimTxt = function (length) {
  return this.length > length ? this.substring(0, length) + '...' : this
}
cropTxt.innerText = cropTxt.innerText.trimTxt(25)


Как быть с кликом никак не дойду.
Может как-то по-другому подойти к вопросу. Может лишний текст как-то оборачивать в span и скрывать его уже стилями?
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2021, 13:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от mediafoks
Если длина параграфа больше "N" символов, то обрезать его до "N" символов и в конце добавить троеточие, и при клике на сам параграф показывать отрезанное содержимое (т.е. весь параграф целиком). А при повторном клике опять скрывать.
Как вариант...

<style>
.short {
	width: 200px;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
</style>
<p class="paragraph short">
	ipsum dolor sit amet consectetur adipisicing elit. Labore enim explicabo accusamus
	eveniet illum possimus nam veniam debitis omnis suscipit ex officiis praesentium harum laborum neque
	culpa, ipsam porro! Quisquam officiis distinctio excepturi autem quo eligendi adipisci, mollitia
	quibusdam rem id dolore magnam, eius minima saepe aspernatur possimus laborum facere!
</p>
<script>
document.querySelector('p').addEventListener('click', (e) => {
	e.target.classList.toggle("short")
})
</script>

Последний раз редактировалось ksa, 28.04.2021 в 13:59.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите поправить код, определения высоты блоков и их сравнения ozoro jQuery 20 09.11.2019 17:55
Помогите исправить JQuery плагин для разделения UL на равные списки ozoro jQuery 12 25.10.2019 17:37
Раскрывающийся список с объемными текстами morzer Общие вопросы Javascript 4 11.07.2016 14:54
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30