Отображение многоточия с возможностью onclick показывать контент только для длинного контента - PullRequest
0 голосов
/ 15 января 2020

Мне нужно укоротить длинный абзац, чтобы в конце отображалась только одна строка с многоточием (в некотором роде) (используя CSS, JS, JQuery ...), но есть три дополнительные условия, которые мне трудно выполнить:

  • На многоточии должно быть событие нажатия кнопки мыши, которое показывает и скрывает оставшийся контент (это относительно легко с кучей руководств по inte rnet)
  • Многоточие должно выглядеть как кнопка (т. Е. Не простой текст "...", в идеале автономный элемент html)
  • Многоточие должно быть видно только в том случае, если если содержимое слишком длинное для отображения в одной строке (это часть, с которой я борюсь)

Вот скрипка почти того, что я хочу: https://jsfiddle.net/Drecker/3gv4tkL9/2/ с выполнением первых двух условий, но мне нужно, чтобы второй многоточие (показанное красным текстом) не отображалось (так как соответствующий текст достаточно короткий, чтобы поместиться в одну строку).

С другой стороны, я возможность использовать параметр CSS text-overflow: ellipsis, но в таком случае Я не могу сделать многоточие кликабельным и изменить его макет.

Редактировать: Чтобы уточнить, данные (текст параграфов) динамически загружаются (извлекаются из внутренней службы, обрабатываются с помощью Vue. js и отображается через v-for), поэтому я не могу просто отобразить страницу, посмотреть, какие строки слишком длинные, и удалить кнопки из таких строк. Я попытался сделать код в скрипте как можно более простым для чтения, чтобы избежать вызова внешней службы для загрузки текстов и использования Vue. js

1 Ответ

1 голос
/ 15 января 2020

Удалите это из кода для всего текста, который является достаточно коротким и не нуждается в кнопке с многоточием:

  <button class="ellipsis" style="color: red">
    Show
  </button>

Размещение некоторого кода поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...