Создать HTML-аккордеон -> Скрыть и показать контент без JS/CSS
Написано Мэтт Альгрен
in Ресурсы и инструменты
Знаете ли вы, что существует собственное решение HTML5, позволяющее очень легко создать аккордеонную кнопку «Читать больше/меньше» для скрытия и отображения контента с помощью НЕТ JavaScript или CSS. Читайте дальше, чтобы узнать, как это сделать.
Игровой автомат и Теги HTML5 официально элемент виджета раскрытия информации, Но в паре с Теги HTML5 дадут вам чистый HTML-аккордеон.
Смысл без JS или CSS нужно. Как это круто!
Вот пример, показывающий простой элемент с и .
Вот код:
<details> <summary>Read More</summary> <p>This is a native HTML5 accordion to hide and reveal content. Pretty cool, right?</p> </details>
и вот как это будет выглядеть:
Это собственный аккордеон HTML5 для скрытия и отображения контента. Довольно круто, правда?
Как это работает? Игровой автомат Тег служит оболочкой для элемента, который можно открыть или закрыть. Пользователь должен нажать на метку, которая является тег, чтобы открыть или закрыть элемент.
Как насчет стиля и поведения?
Стили
Вы можете применить стили CSS, чтобы настроить внешний вид раскрывающегося текстового поля. Ниже приведен стиль интерфейса с вкладками:
details { font: 16px "Open Sans", Calibri, sans-serif; width: 620px; } details > summary { padding: 2px 6px; width: 15em; background-color: #ddd; border: none; box-shadow: 3px 3px 4px black; cursor: pointer; } details > p { border-radius: 0 0 10px 10px; background-color: #ddd; padding: 2px 6px; margin: 0; box-shadow: 3px 3px 4px black; } details[open] > summary { background-color: #ccf; }
По умолчанию курсор выглядит как стрелка, но если вы хотите, чтобы он был указательная рука вместо этого используйте это:
details { cursor: pointer; }
поведения
Настройка поведения очень ограничена, на самом деле вы можете сделать только одно: сделать отображаемый текст открыто по умолчанию.
Чтобы запустить аккордеон в открытом состоянии, добавьте логическое значение открытый приписать тег:
<details open> <summary>Read More</summary> <p>This is a native HTML5 accordion to hide and reveal content. Pretty cool, right?</p> </details>Узнать больше
Это собственный аккордеон HTML5 для скрытия и отображения контента. Довольно круто, правда?
Какие атрибуты я могу использовать?
Следующие атрибуты можно использовать для тег:
Атрибут | Значение | Заключение |
---|---|---|
открытый | открытый | По умолчанию это не открыто. |
id | ценностное | Предоставляет уникальный идентификатор. |
класс | имена классов | Присваивает имена классов элементу. |
стиль | CSS-значения | Назначает стили CSS элементу. |
Итак, каковы ограничения? Всегда есть подвох, не так ли?
Нет поддержки Internet Explorer
Этот аккордеон только для HTML5 не будет работать ни в одной версии Internet Explorer. Если вам нужно, чтобы он поддерживал IE11, вам придется использовать другое резервное решение с использованием JQuery. Все остальные браузеры поддерживают и .
Никаких настраиваемых анимаций или переходов
Хотя вы можете изменять и стилизовать внешний вид (как показано выше), вы не сможете выполнять анимацию или переходы для отображения текста. Если вы хотите сделать это, вам понадобится другое решение для аккордеона CSS/JSS.
Программы чтения с экрана и специальные возможности
Это родной HTML5 и он *должен быть* доступен, но было обнаружено, что фактический отображаемый текст не всегда правильно объявляется программой чтения с экрана.
Ссылки:
- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details
- https://html.spec.whatwg.org/multipage/interactive-elements.html#the-details-element
- https://caniuse.com/details
- https://www.hassellinclusion.com/blog/accessible-accordions-part-2-using-details-summary/
Похожие сообщения
Категории Ресурсы и инструментыПрисоединяйтесь к нашей рассылке
Подпишитесь на нашу еженедельную сводку новостей и получайте последние новости и тенденции отрасли
Нажимая «подписаться», вы соглашаетесь с нашими условия использования и политика конфиденциальности.
Accordion Blocks — Плагин для WordPress
- Детали
- Отзывы
- Установка
- Поддержка
- Разработка
Accordion Blocks is a simple plugin that adds a Gutenberg block for adding accordion drop-downs to your pages.
The accordions should blend seamlessly with your theme. However, you may want to add custom styles to your theme.
Features
- Adds a Gutenberg block for adding accordions to your site.
- Supports multiple accordions with individual settings for each accordion item.
- Fully responsive.
- Support for item IDs and direct links.
- Supports nesting accordions.
- Accessible (for users requiring tabbed keyboard navigation control).
Optional Features
- Open individual accordion items by default.
- Disable auto closing of accordion items.
- Manually close items by clicking the title again.
- Scroll page to title when it’s clicked open (including setting a scroll offset position).
- Set the HTML heading tag for the title element (h2–h6, button).
- Set defaults to be applied to all new accordion items or reset a specific accordion item to the defaults.
- Supports adding custom block styles using
wp.blocks.registerBlockStyle
.
Output
The plugin will ultimately output following HTML (simplified for this example):
<div data-initially-open="false" data-click-to-close="true" data-auto-close="true" data-scroll="false" data-scroll-offset="0"> <h3 tabindex="0" role="button" aria-controls="ac-76840" aria-expanded="false"> Title with h3 tag </h3> <div aria-hidden="true"> <p>Content</p> </div> </div>
Custom CSS
You can use the following CSS classes to customize the look of the accordion.
.c-accordion__item {} /* The accordion item container */ .c-accordion__item.is-open {} /* is-open is added to open accordion items */ .c-accordion__item.is-read {} /* is-read is added to accordion items that have been opened at least once */ .c-accordion__title {} /* An accordion item title */ .c-accordion__title--button {} /* An accordion item title that is using a `<button>` tag */ .c-accordion__title:hover {} /* To modify the style when hovering over an accordion item title */ .c-accordion__title:focus {} /* To modify the style when an accordion item title currently has broswer focus */ .c-accordion__content {} /* An accordion item content container */
- Accordion block settings sidebar
- Accordion block in the editor
Этот плагин предоставляет 1 блок.
- Accordion Item
- Upload the ‘accordion-blocks’ folder to the ‘/wp-content/plugins/’ directory.
- Activate the plugin through the Plugins menu in WordPress.
- Add the accordions to your content.
Can I change all my existing accordion items to the defaults?
No. It is not possible to change all your accordion item’s settings (within the same page or across multiple pages) to the defaults.
Although I would like to offer this feature, based on my research it would require a significant amount of development time that I am unable to devote to a free plugin. If you are a developer and would be interested in helping implement a feature like that, please let me know.
Why isn’t the JavaScript file loading on my site?
This is most likely caused by a poorly coded theme. This plugin makes use of the
wp_footer()
function to load the JavaScript file and it’s dependancy (jQuery). Check your theme to ensure that thewp_footer()
function is being called right before the closing
tag in your theme’s footer.php file. </body>Issues/Suggestions
For bug reports or feature requests or if you’d like to contribute to the plugin you can check everything out on Github.
Does the job quite well. Simple and straight forward. However, it would be nice to smooth the movement (there’s some kind of small jump at the end of the opening and the beginning of the closing)
Great plugin, but it often won’t work in Chrome or Edge, and often randomly will work. a bit glitchy! We have the LiteSpeed Cache Plugin and is probably an issue with the combine CCS or JS.
This should be WP Core. Lightweight, works, rocks. Thank you.
Fantastic lightweight. I’m very grateful for this important block. Thank you so much!
This is a truely Jquery free accordion!Simple and yet functional as expected.
Exactly what I needed. Simple, lightweight, and includes all the options for a perfect user experience. The Gutenberg team should take note.
Посмотреть все 34 отзыва
«Accordion Blocks» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники
- philbuchanan
«Accordion Blocks» переведён на 3 языка. Благодарим переводчиков за их работу.
Перевести «Accordion Blocks» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
1.5.0
- Plugin now requires WordPress 5. 9.
- Use
useInnerBlocksProps
anduseInnerBlocksProps.save()
for inner blocks handling.
1.4.1
- Fixed: Fixed UUID not generating properly in widget editor.
1.4.0
- New: Use block API v2 with useBlockProps.
- Fixed: Registering block with block.json file.
- Fixed: Use BlockControls group setting for title tag toolbar.
- Fixed: Replaced deprecated
registerStore
withregister
. - Fixed: Reference to which script contains translations is now correct.
1.3.5
- Fixed: An issue where the global loading of scripts and styles checkbox was checked when the setting was actually off.
1.3.4
- Fixed: Made turning off global loading of scripts and styles an explicit setting. You can turn off this off in Settings > Accordion Blocks.
1.3.3
- Fixed: Rolled back deprecated
registerStore
withregister
change since it only applies to WordPress 5. 7+.
1.3.2
- New: Visual indicator of bottom of block when the block is selected.
- New: Only load plugin assets when the page contains an accordion block.
- Fixed: Replaced deprecated
registerStore
withregister
.
1.3.1
- Added support for WordPress 5.7.
- New method for generating uuids that should be more reliable.
1.3.0
- New: Added h5 and h6 as options for title tag.
- New: Only users with the role of Editor or Administrator can set new default settings. All users can restore settings to defaults. This lays the groundwork for the ability to make this user definable in a settings page which may come in a future release.
- Fixed: New accordions added by Authors wouldn’t function properly.
1.2.2
- Fixed: Unique IDs were not set for new accordion items for sites that didn’t already have default options stored in the database.
1.
2.1- Fixed PHP error that slipped through.
1.2.0
- Added support for WordPress 5.6, including fixing jQuery Migrate issues.
- Added support for grouping accordion items.
- Added support for nested accordion items.
- Removed accordion settings API for getting and setting defaults in favour of use useEntityProp.
1.1.6
- Fixed: Use sample content (instead of real content) to preview custom blocks styles in the editor.
- Fixed: Bumped required version to WordPress 5.4.
1.1.5
- Fixed: Resolved issue with PHP notice for not setting permission_callback in REST API.
1.1.4
- Added: Support for WordPress 5.5
- Fixed: no-js styles are now specific to the accordion item block
1.1.3
- Fixed: When typing backspace on a button title, it would delete the entire accordion item instead of backspacing a character
1.1.2
- Fixed: Accordion titles once again support bold and italic formats
- Fixed: Translation should now be possible via WordPress translation site
1.
1.1- Fixed: An issue where, on some sites, accordion content would not smoothly animate open, instead just appearing instantly after a short delay
- Fixed: Duplicated accordion items now have unique IDs which should resolve the issue where clicking on the duplicate title opens the original block
1.1.0
- New: An option to set default accordion item settings that will be applied to all newly created accordions. Individual accordion items can be reset to whatever is set as the defaults.
- Fixed: Accordions not working if showing multiple posts’ content on one page. Unfortunately this will only apply to newly created accordions. Old accordions will need to be replaced to work properly.
- Fixed: Users without the
unfiltered_html
permission (i.e. users with Author or lower user role) would get an «invalid content» error when viewing an accordion added by a user with theunfiltered_html
permission (and vise-versa).
1.0.6
- Fixed typo in plugin settings
1.0.5
- Added minified versions of JS and CSS files
1.0.4
- Made plugin translatable
- Code cleanup
1.0.3
- Added the ability to convert a paragraph or heading into an accordion.
1.0.2
- Added the ability for the block in the editor to accept custom css classes (allows for custom registration of Block Styles)
- Accessibility fix: Removed aria-hidden=false from closed accordions.
1.0.1
- Updated readme.
1.0.0
- All new plugin to support the new WordPress Gutenberg editor.
Мета
- Версия: 1.5.0
- Обновление: 9 месяцев назад
- Активных установок: 20 000+
- Версия WordPress: 5.9 или выше
- Совместим вплоть до: 5. 9.5
- Версия PHP: 7.3 или выше
- Языки:
English (US), German, Portuguese (Brazil) и Spanish (Spain).
Перевести на ваш язык
- Метки:
Accordionaccordionsblockgutenbergresponsive
- Дополнительно
Оценки
Посмотреть все
- 5 звёзд 34
- 4 звезды 0
- 3 звезды 0
- 2 звезды 0
- 1 звезда 0
Войдите, чтобы оставить отзыв.
Участники
- philbuchanan
Поддержка
Решено проблем за последние 2 месяца:
0 из 2
Перейти в форум поддержки
Пожертвование
Would you like to support the advancement of this plugin?
Пожертвовать на развитие плагина
Документация: DevExtreme — JavaScript Accordion
Компонент пользовательского интерфейса Accordion содержит несколько панелей, отображаемых одна под другой. Эти панели могут быть свернуты или развернуты конечным пользователем, что делает этот компонент пользовательского интерфейса очень полезным для представления информации в ограниченном пространстве.
Входит в состав: dx.web.js, dx.all.js
импорт Аккордеона из «devextreme/ui/accordion»
Посмотреть демо Начать обучение
См. также
- Настройка DevExtreme : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут
- Настройка компонента пользовательского интерфейса : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут
Объект, определяющий свойства конфигурации для компонента Accordion UI.
Имя | Описание |
---|---|
ключ доступа | Указывает сочетание клавиш, которое устанавливает фокус на компонент пользовательского интерфейса. |
активстатеэнаблед | Указывает, изменяет ли компонент пользовательского интерфейса свое визуальное состояние в результате взаимодействия с пользователем. |
продолжительность анимации | Число, указывающее время в миллисекундах, затраченное на анимацию развертывания или свертывания панели. |
складной | Указывает, можно ли свернуть все элементы или хотя бы один элемент всегда должен быть развернут. |
источник данных | Привязывает компонент пользовательского интерфейса к данным. |
отложенный рендеринг | Указывает, отображать ли содержимое панели при ее отображении. Если false , содержимое отображается немедленно. |
отключен | Указывает, реагирует ли компонент пользовательского интерфейса на действия пользователя. |
атрибут элемента | Указывает глобальные атрибуты, которые должны быть присоединены к элементу-контейнеру компонента пользовательского интерфейса. |
focusStateEnabled | Указывает, можно ли сфокусировать компонент пользовательского интерфейса с помощью навигации с помощью клавиатуры. |
высота | Задает высоту компонента пользовательского интерфейса. |
подсказка | Задает текст для подсказки, которая появляется, когда пользователь делает паузу в компоненте пользовательского интерфейса. |
hoverStateEnabled | Указывает, изменяет ли компонент пользовательского интерфейса свое состояние, когда пользователь делает на нем паузу. |
детальКомпонент | Псевдоним для свойства itemTemplate, указанного в React. Принимает пользовательский компонент. Дополнительные сведения см. в разделе Использование пользовательского компонента. |
элементHoldTimeout | Период времени в миллисекундах до возникновения события onItemHold . |
элементВизуализация | Псевдоним для свойства itemTemplate, указанного в React. Принимает функцию рендеринга. Дополнительные сведения см. в разделе Использование функции рендеринга. |
штук | Массив элементов, отображаемых компонентом пользовательского интерфейса. |
шт.Шаблон | Задает пользовательский шаблон для элементов. |
itemTitleComponent | Псевдоним для свойства itemTitleTemplate, указанного в React. Принимает пользовательский компонент. Дополнительные сведения см. в разделе Использование пользовательского компонента. |
itemTitleRender | Псевдоним для свойства itemTitleTemplate, указанного в React. Принимает функцию рендеринга. Дополнительные сведения см. в разделе Использование функции рендеринга. |
itemTitleTemplate | Задает пользовательский шаблон для заголовков элементов. |
keyExpr | Указывает свойство ключа, которое предоставляет значения ключа для доступа к элементам данных. Каждое значение ключа должно быть уникальным. |
кратный | Указывает, может ли компонент пользовательского интерфейса одновременно разворачивать несколько элементов или только один элемент. |
нет данныхтекст | Задает текст или HTML-разметку, отображаемую компонентом пользовательского интерфейса, если коллекция элементов пуста. |
onContentReady | Функция, которая выполняется при отрисовке компонента пользовательского интерфейса и каждый раз при перерисовке компонента. |
при утилизации | Функция, которая выполняется до удаления компонента пользовательского интерфейса. |
при инициализации | Функция, используемая в платформах JavaScript для сохранения экземпляра компонента пользовательского интерфейса. |
onItemClick | Функция, которая выполняется при нажатии или касании элемента коллекции. |
onItemContextMenu | Функция, которая выполняется, когда элемент коллекции щелкается правой кнопкой мыши или нажимается. |
onItemHold | Функция, которая выполняется, когда элемент коллекции удерживается в течение указанного периода. |
onItemRendered | Функция, которая выполняется после визуализации элемента коллекции. |
onItemTitleClick | Функция, которая выполняется при щелчке или касании заголовка элемента аккордеона. |
onOptionChanged | Функция, которая выполняется после изменения свойства компонента пользовательского интерфейса. |
onSelectionChanged | Функция, которая выполняется при развертывании или сворачивании элемента коллекции. |
перекраситьChangesOnly | Указывает, следует ли перекрашивать только те элементы, данные которых изменились. |
rtlEnabled | Переключает компонент пользовательского интерфейса на представление справа налево. |
выбранный индекс | Индекс текущего развернутого элемента. |
выбранныйЭлемент | Расширенный объект элемента. |
выбранныйItemKeys | Задает массив открытых в данный момент ключей элементов. |
выбранные элементы | Массив развернутых в данный момент объектов элементов. |
tabIndex | Указывает номер элемента, когда для навигации используется клавиша Tab. |
видимый | Указывает, виден ли компонент пользовательского интерфейса. |
ширина | Задает ширину компонента пользовательского интерфейса. |
См. также
- Настройка компонента пользовательского интерфейса : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут
В этом разделе описываются элементы, используемые для управления компонентом пользовательского интерфейса Accordion.
Имя | Описание |
---|---|
начало обновления() | Предотвращает обновление компонента пользовательского интерфейса до тех пор, пока не будет вызван метод endUpdate(). |
свернуть элемент (индекс) | Сворачивает элемент с определенным индексом. |
Параметры по умолчанию (правило) | Указывает зависящие от устройства свойства конфигурации по умолчанию для этого компонента. |
распоряжаться() | Удаляет все ресурсы, выделенные экземпляру Accordion. |
элемент() | Получает корневой элемент компонента пользовательского интерфейса. |
endUpdate() | Обновляет компонент пользовательского интерфейса после вызова метода beginUpdate(). |
развернутьЭлемент(индекс) | Разворачивает элемент с определенным индексом. |
фокус() | Устанавливает фокус на компонент пользовательского интерфейса. |
получить источник данных () | Получает экземпляр DataSource. |
getInstance (элемент) | Получает экземпляр компонента пользовательского интерфейса, найденный с помощью его узла DOM. |
экземпляр() | Получает экземпляр компонента пользовательского интерфейса. Используйте его для доступа к другим методам компонента пользовательского интерфейса. |
выкл(имя события) | Отсоединяет все обработчики событий от одного события. |
выкл (имя события, обработчик события) | Отсоединяет конкретный обработчик событий от одного события. |
на (имя события, обработчик события) | Подписка на событие. |
по(событиям) | Подписка на события. |
вариант() | Получает все свойства компонента пользовательского интерфейса. |
опция (имя_опции) | Получает значение одного свойства. |
опция (optionName, optionValue) | Обновляет значение одного свойства. |
опция(опции) | Обновляет значения нескольких свойств. |
registerKeyHandler (ключ, обработчик) | Регистрирует обработчик, который будет выполняться, когда пользователь нажимает определенную клавишу. |
перекрасить() | Перерисовывает компонент пользовательского интерфейса без перезагрузки данных. Вызовите его, чтобы обновить разметку компонента пользовательского интерфейса. |
resetOption(optionName) | Сбрасывает свойство до его значения по умолчанию. |
обновлениеРазмеры() | Обновляет размеры содержимого компонента пользовательского интерфейса. |
См. также
- Методы вызова : Угловой | Вью | Реагировать | jQuery | УгловойJS | Нокаут
В этом разделе описываются события, запускаемые этим компонентом пользовательского интерфейса.
Имя | Описание |
---|---|
контент готов | Возникает, когда содержимое компонента пользовательского интерфейса готово. |
утилизация | Возникает перед удалением компонента пользовательского интерфейса. |
инициализировано | Возникает только один раз после инициализации компонента пользовательского интерфейса. |
пунктНажмите | Возникает при нажатии или касании элемента коллекции. |
пунктContextMenu | Возникает при щелчке правой кнопкой мыши или нажатии элемента коллекции. |
предметДерж | Возникает, когда элемент коллекции удерживается в течение указанного периода. |
элементВизуализировано | Возникает после рендеринга элемента коллекции. |
itemTitleClick | Возникает при щелчке или касании заголовка элемента аккордеона. |
optionChanged | Возникает после изменения свойства компонента пользовательского интерфейса. |
выбор изменен | Возникает при раскрытии или сворачивании элемента коллекции. |
См. также
- Обработка событий : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут
Была ли эта тема полезной?
Спасибо!
Не стесняйтесь делиться мыслями, связанными с демонстрацией, здесь.
Если у вас есть технические вопросы, создайте заявку в службу поддержки в Центре поддержки DevExpress.
x
Отправить отзыв
Спасибо!
Мы ценим ваши отзывы.
аккордеон-js — Анализ работоспособности пакета npm
Все уязвимости безопасности относятся к производственных зависимостей прямых и косвенных пакеты.
Угроза безопасности и лицензии для основных версий
Все версии
Версия | Уязвимости | Лицензионный риск | |||
---|---|---|---|---|---|
- C
- H
- M
- L
- H
- M
- Л
- C
- H
- M
- L
- H
- M
- L
Популярный
- C
- H
- M
- L
- H
- M
- L
- C
- H
- M
- L
- В
- М
- Д
- C
- H
- M
- L
- H
- M
- L
Ваш проект подвержен уязвимостям?
Сканируйте свои проекты на наличие уязвимостей. Быстро исправить с помощью автоматизированного исправления. Начните работу со Snyk бесплатно.
Начните бесплатно
Еженедельные загрузки (9 637)
Скачать тренд
- Иждивенцы
- 5
- Звезды GitHub
- 218
- Вилки
- 59
- Авторы
- 5
Популярность прямого использования
TOP 30%Пакет npm acnedion-js получает в общей сложности 9 637 загрузок в неделю. Таким образом, мы забили уровень популярности аккордеона-js будет низким.
На основе статистики проекта из репозитория GitHub для npm, аккордеон-js, мы обнаружили, что он был снялся 218 раз, и это 5 других проектов в экосистеме зависят от него.
Загрузки рассчитываются как скользящие средние за период из последних 12 месяцев, за исключением выходных и известных отсутствующих точек данных.
Частота фиксации
- Открытые вопросы
- 1
- Открытый PR
- 0
- Последняя версия
- 2 месяца назад
- Последняя фиксация
- 2 месяца назад
Дальнейший анализ состояния обслуживания аккордеона-js на основе каденция выпущенных версий npm, активность репозитория, и другие точки данных определили, что его обслуживание Здоровый.