Plugin jQuery personnalisé et CSS pour afficher et masquer le contenu
The requirement: nous devons afficher un contenu réductible lorsque nous avons cliqué sur le bouton "Afficher" et masquer le contenu réductible lorsque nous avons cliqué sur le bouton "Masquer".
The solution: Créez un plugin jQuery personnalisé.
Démo: clique sur le bouton «afficher».
Note
Voici la solution alternative - la fonctionjQuery toggle().
1. Contenu réductible
Voici un exemple de code HTML pour le contenu réductible:
Use jQuery + CSS to hide/show collapse content
Bla bla bla bla
L'élément «div» dans<div id="collapse2" class="collapse">
ci-dessus est hide. Où le CSS «collapse» a «display:none
» comme ci-dessous:
.collapse { display: none; position: relative; overflow: hidden; }
Remarque
Le
2. Plugin jQuery personnalisé
Afin d'afficher le contenu lorsque nous avons cliqué sur le bouton "Afficher", nous devons créer un événement de clic pour le bouton "Afficher" comme ci-dessous:
$('.nav-collapse').click(function(){ //logic to show/hide collapsable content });
Tout d'abord, nous devons obtenir le sélecteur de contenu réduit de l'attribut href:
var collapse_content_selector = $(this).attr('href');
Ensuite, nous utilisons jQuery pour vérifier si l'élément de contenu réductible a le nom de classe CSS «show»:
var collapse_content = $(collapse_content_selector); if(collapse_content.hasClass('show')){ //logic to hide the collapsable content }else{ //logic to show the collapsable content }
Afin de masquer le contenu réductible, nous devons supprimer le nom de classe CSS ‘show’ comme ci-dessous:
collapse_content.removeClass('show');
Afin d'afficher le contenu réductible, nous devons ajouter le nom de classe CSS «show» comme ci-dessous:
collapse_content.addClass('show');
Où CSS "show" est utilisé pour changer les propriétés css "display" en "block" comme ci-dessous:
.show{ display: block; }
Note
Pour que le contenu réductible soit affiché lorsque la page est chargée, nous devons ajouter un nom de classe CSS «show» comme<div class="collapse show">....</div>
.
Enfin, nous avons besoin d'une fonction de rappel pour faciliter le libellé du bouton à «Masquer / Afficher». Exemple:
Fonction de rappel lorsqu'un contenu réductible est affiché:
$('.nav-collapse').html('Hide');//change the button label to be 'Hide'
Fonction de rappel lorsque le contenu réductible est masqué:
$('.nav-collapse').html('Show');//change the button label to be 'Show'
Par conséquent, nous devons passer des fonctions de rappel dans le plugin jQuery comme:
{ onShow: function(){ $(this).html('Hide');//change the button label to be 'Hide' }, onHide: function(){ $(this).html('Show');//change the button label to be 'Show' } }
Voici le code source final du plugin:
(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));
et jQuery pour utiliser le plugin:
$('.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. Exemple complet
Use jQuery + CSS to display and hide content Use jQuery + CSS to hide/show collapse content
Bla bla bla bla
Télécharger le code source
Téléchargez-le -jQuery-css-to-display-hide-content.zip (1kb)