Pepin est un modèle (parmi tant d'autres) de plugin jQuery modulaire, accompagné de plugins pratiques (voir liste ci-dessous), propres et respectant la plupart des bonnes pratiques d'accessibilité, avec l'usage d'ARIA.
Ils pourraient dans le futur être adaptés en JavaScript Vanilla (sans dépendance vis-à-vis d'un framework).
Les scripts pourront être réutilisés plusieurs fois sur un même document sans conflit
Les scripts peuvent se ré-adapter si leur structure change (ex : ajout d’un item dans des onglets, dans un menu accordéon)
Les scripts présenteront un nommage simple et cohérent
Le plugin s'auto-exécute avec :
$(document).ready(function() {
// Lie le plugin aux éléments
$('.js-plugin-elements').pluginName();
});
Invocation avec des options spécifiques (mais il est plus pratique de passer par les attributs data-*
).
$('.js-plugin-elements').pluginName({'chou': 'croute'});
Appel de méthode publique depuis un autre plugin/script.
$('.js-plugin-elements').data('pluginName').doSomething();
Récupère la valeur de paramètres internes.
$('.js-plugin-elements').data('pluginName').settings.parameter;
registerEvents
.trigger()
.Premier, sur l’élément de classe .first
:
var registerEvents = function() {
// Autres événements
$element.off('myCustomEvent').on('myCustomEvent', function() {
// Faire quelque chose lorsqu'appelé depuis l'extérieur...
});
}
Second sur l’élément .second
:
// ...
$('.first').trigger('myCustomEvent');
// ...
Plusieurs scripts/plugins jQuery qui suivent ce modèle sont proposés comme base de travail et utilisables sur des projets web concrets :
Nom | Description | Statut | Doc |
---|---|---|---|
Accordion | Blocs déployables en accordéon | OK | OK |
Filter | Filtrage de données sur la page / Auto-complétion et recherche d'éléments sur la page | OK | OK |
Selection | Eléments parents sélectionnables (ex : checkbox/radio) | OK | OK |
SmoothScroll | Défilement de page (vertical en général) suite au clic sur un lien/bouton | OK | OK |
Tabs | Onglets | OK | OK |
Copy | Recopie de texte d'un élément à l'autre | OK | OK |
Toggle | Déclencheurs d'ajout/suppression de classe, de gestion d'éléments à distance (ex : afficher/masquer un élément, listes déroulantes, agir sur les cellules d'un tableau, etc) | OK | OK |
Typosize | Affectation de styles au body, par exemple pour agrandir/réduire la taille des polices | OK | OK |
Slider | Défilement de contenu de type carousel | OK | OK |
Slideshow | Défilement de contenu de type diaporama | OK | OK |
Modal | Fenêtres modales (popin) | OK | OK |