Примеры реализации раскрывающихся блоков на JS по клику. Самый простой вариант - открыть блок следующий за элементом, по которому кликнули и вариант посложнее, в нем есть три основных блока, внутри этих блоков есть несколько внутренних, часть из которых скрыты и должны открываться по клику на слово/ссылку в тексте.
Материал переписан полностью 23.08.23. Внизу будет пример в CodePen (можно покликать и удобнее посмотреть), а пока все с пояснениями. Вот что получится в итоге:
- Кнопка откроет следующий за ней блок
- Кнопки в тексте, которые открывают блоки ниже
- То же самое, что и 2, в другом блоке. Одна из кнопок активна
- Открытый блок
HTML код
Здесь есть три основных (class "block") блока подряд. В первом есть некий текст, после него кнопка "Показать еще", после нее скрытый блок. Нажимаем кнопку - скрытое содержимое появляется.
Второй и третий одинаковы, дубли сделаны для наглядности. Есть некий текст, внутри текста кнопки, после текста скрытое содержимое. Нажатие на кнопку в тексте показывает соответствующий ей блок и скрывает остальные. Классы внутри блоков одинаковы, нужно показать/скрыть содержимое в нужном блоке.
CSS
Здесь только стили, без пояснений. Блоки сильно не оформлял, только что бы показать - что примерно должно получиться в итоге.
Java Script
Для начала раскрытие блока следующего за кнопкой. Здесь покажу два варианта. Первый - с использованием функции "toggleClass", второй - с проверкой, открыт ли блок. Можно и так и так, второй вариант позволяет добавить некие дополнительные действия.
Вариант 1:
Вариант 2:
Теперь скрипт для открытия блоков по кнопкам в тексте:
+
Второй блок
Текст 2-1 (У ЭТОЙ СТРОЧКИ 1)
Текст 2-2 (У ЭТОЙ 2)
Текст 2-3 (УЭТОЙ 3)
Текст в раскрывающемся блоке
Как сделать что бы у каждой строчки в блоке был свой индификатор (класс?). и при клике на чекбокс (в моем случае) они бы все отображались
Посмотреть бы Ваш код…
блин, почему то не подключается js все перепробовал
Может конфликтует… а куда вставляете?
Я понял в чем дело, я 0 в js, взял просто скопировал код и вставил, а там редактировать надо еще, I'd прописовать.
Спасибо то что нужно! Очень помогло)