Edit: Cette bibliothèque est maintenant disponible via Bower et NPM. Voir le dépôt github pour plus de détails.
RÉPONSE MIS À JOUR:
Avertissement: je suis l'auteur.
Voici quelques choses que vous pouvez faire en utilisant la dernière version (Responsive Bootstrap Toolkit 2.5.0):
// Wrap everything in an IIFE
(function($, viewport){
// Executes only in XS breakpoint
if( viewport.is('xs') ) {
// ...
}
// Executes in SM, MD and LG breakpoints
if( viewport.is('>=sm') ) {
// ...
}
// Executes in XS and SM breakpoints
if( viewport.is('<md') ) {
// ...
}
// Execute only after document has fully loaded
$(document).ready(function() {
if( viewport.is('xs') ) {
// ...
}
});
// Execute code each time window size changes
$(window).resize(
viewport.changed(function() {
if( viewport.is('xs') ) {
// ...
}
})
);
})(jQuery, ResponsiveBootstrapToolkit);
Depuis la version 2.3.0, vous n'avez pas besoin des quatre <div>
éléments mentionnés ci-dessous.
RÉPONSE ORIGINALE:
Je ne pense pas que vous ayez besoin d'un énorme script ou d'une bibliothèque pour cela. C'est une tâche assez simple.
Insérez les éléments suivants juste avant </body>
:
<div class="device-xs visible-xs"></div>
<div class="device-sm visible-sm"></div>
<div class="device-md visible-md"></div>
<div class="device-lg visible-lg"></div>
Ces 4 divs vous permettent de vérifier le point d'arrêt actuellement actif. Pour une détection JS facile, utilisez la fonction suivante:
function isBreakpoint( alias ) {
return $('.device-' + alias).is(':visible');
}
Maintenant, pour effectuer une certaine action uniquement sur le plus petit point d'arrêt que vous pourriez utiliser:
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
Détecter les changements une fois que le DOM est prêt est également assez simple. Tout ce dont vous avez besoin est un écouteur de redimensionnement de fenêtre léger comme celui-ci:
var waitForFinalEvent = function () {
var b = {};
return function (c, d, a) {
a || (a = "I am a banana!");
b[a] && clearTimeout(b[a]);
b[a] = setTimeout(c, d)
}
}();
var fullDateString = new Date();
Une fois que vous en êtes équipé, vous pouvez commencer à écouter les changements et exécuter des fonctions spécifiques aux points d'arrêt comme ceci:
$(window).resize(function () {
waitForFinalEvent(function(){
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
}, 300, fullDateString.getTime())
});
<div class="d-none d-?-block"></div>
visibilité change (insérez votre point d'arrêt souhaité). Ces classes CSS sont pour Bootstrap 4 ... utilisent tout ce qui fonctionne dans Bootstrap 3. Beaucoup plus performant que d'écouter l'événement de redimensionnement de la fenêtre.