Пользовательский плагин jQuery и CSS для отображения и скрытия контента
The requirement: нам нужно показывать сворачиваемое содержимое, когда мы нажимаем кнопку «Показать», и скрывать сворачиваемое содержимое, когда мы нажимаем кнопку «Скрыть».
The solution: создать собственный плагин jQuery.
Демо: нажимает кнопку «показать».
Note
Вот альтернативное решение - функцияjQuery toggle().
1. Складной контент
Ниже приведен пример HTML для сворачиваемого контента:
Use jQuery + CSS to hide/show collapse content
Bla bla bla bla
Элемент «div» в<div id="collapse2" class="collapse">
выше скрыт. Если «коллапс» CSS имеет «display:none
», как показано ниже:
.collapse { display: none; position: relative; overflow: hidden; }
Обратите внимание:
2. Пользовательский плагин jQuery
Чтобы показать содержимое, когда мы нажали кнопку «Показать», нам нужно создать событие щелчка для кнопки «Показать», как показано ниже:
$('.nav-collapse').click(function(){ //logic to show/hide collapsable content });
Во-первых, нам нужно получить селектор свернутого контента из атрибута href:
var collapse_content_selector = $(this).attr('href');
Затем мы используем jQuery, чтобы проверить, имеет ли сворачиваемый элемент контента «показать» имя класса CSS:
var collapse_content = $(collapse_content_selector); if(collapse_content.hasClass('show')){ //logic to hide the collapsable content }else{ //logic to show the collapsable content }
Чтобы скрыть сворачиваемое содержимое, нам нужно удалить имя класса CSS «show», как показано ниже:
collapse_content.removeClass('show');
Чтобы показать сворачиваемое содержимое, нам нужно добавить имя класса CSS «show», как показано ниже:
collapse_content.addClass('show');
Где CSS «show» используется для изменения свойств css «display» на «block», как показано ниже:
.show{ display: block; }
Note
Чтобы сворачиваемый контент отображался при загрузке страницы, нам нужно добавить «показать» имя класса CSS, например<div class="collapse show">....</div>
.
Наконец, нам нужна функция обратного вызова, чтобы метка кнопки была «Скрыть / Показать». Пример:
Функция обратного вызова при отображении сворачиваемого контента:
$('.nav-collapse').html('Hide');//change the button label to be 'Hide'
Функция обратного вызова, когда складываемый контент скрывается:
$('.nav-collapse').html('Show');//change the button label to be 'Show'
Поэтому нам нужно передать функции обратного вызова в плагин jQuery, например:
{ onShow: function(){ $(this).html('Hide');//change the button label to be 'Hide' }, onHide: function(){ $(this).html('Show');//change the button label to be 'Show' } }
Ниже приведен окончательный исходный код плагина:
(function($) { $.fn.collapse=function(options){ $(this).click(function(){ //get collapse content selector var collapse_content_selector = $(this).attr('href'); //make the collapse content to be shown var collapse_content = $(collapse_content_selector); if(collapse_content.hasClass('show')){ collapse_content.removeClass('show'); $(this).html('Show'); if(options && options.onHide){ options.onHide(); } }else{ collapse_content.addClass('show'); if(options && options.onShow){ options.onShow(); } } }); } }(jQuery));
и jQuery использовать плагин:
$('.nav-collapse').collapse({ onShow: function(){ $(this).html('Hide');//change the button label to be 'Hide' }, onHide: function(){ $(this).html('Show');//change the button label to be 'Show' } });
3. Полный пример
Use jQuery + CSS to display and hide content Use jQuery + CSS to hide/show collapse content
Bla bla bla bla
Скачать исходный код
Скачать -jQuery-css-to-display-hide-content.zip (1кб)