comment appeler différentes actions jquery dans un design responsive
J'en suis au point de convertir mon projet en responsive design.
Ce qui est le plus pratique et universel solution proposez-vous pour mettre en œuvre les différentes jQuery-blocs pour chaque point d'arrêt?
Je veux garder tous les scripts dans un fichier cause de nombre de http demandes.
C'est ce que j'ai trouvé:
- breakpoint.js -> définir tous les points d'arrêt doublé en CSS & JS
- http://responsejs.com/ -> définir des points d'arrêt dans les données du corps-attr
- OnMediaQuery -> définir des noms lisibles pour les points d'arrêt (à mon humble avis mieux, parce que vous n'êtes pas lié à pixels)
Mon problème est, ils définissent tous les rappels, mais je ne sais pas comment lier ou d'annuler toute jQuery événement-auditeurs dans ces cas.
par exemple j'ai:
$('#selector').click( function() {
alert('selector clicked');
});
mais qui ne devrait arriver si max-width de 320px.
Dans l'écran de la taille ci-dessus que le clic doit retourner false ou d'effectuer toute autre action
pour le moment, je n'ai pas la moindre idée de comment faire cela.
source d'informationauteur felixaburg
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tout simplement créer votre propre points d'arrêt en JS. Quelque chose comme cela. Ajuster à vos besoins.
J'ai foiré autour avec certaines bibliothèques et des trucs et fini à l'aide de ce type de réactif à l'écoute. Il utilise les CSS media queries pour les points d'arrêt et UnderscoreJS pour un throttler. L'avantage que je vois, c'est que les points d'arrêt sont tous définis dans le CSS au lieu de fragmentée à travers les différents scripts.
Exemple CSS
@media
des points d'arrêt à l'aide de:after
sur lebody
:Exemple auditeur script en attente d'incendie basé sur le contenu de
body:after
. Comme vous pouvez le voir il est défini comme 2 gammes dans cet exemple, pour afficher/masquer/déplacer/créer des widgets en fonction de l'équipement généralité:http://jsfiddle.net/Dhaupin/nw7qbdzx/ - Il suffit de les redimensionner le volet de sortie dans jsfiddle pour le tester.
EDIT: Apparemment navigateurs rendre l' :après des contenus par l'intermédiaire
window.getComputedStyle(document.body,':after').content
différemment et insérer des guillemets simples et doubles. Ajout d'un remplacer de les frotter.Si vous êtes en utilisant Bootstrap 4 vous pouvez utiliser ce plugin jQuery pour vérifier ce point d'arrêt est défini par la vérification de la CSS la propriété d'affichage des éléments.
https://jacoblett.github.io/IfBreakpoint/
Puis l'utiliser comme
Si vous ciblez les navigateurs modernes (IE10 vers le haut, et non pas IE mobile), alors vous devriez utiliser la nouvelle
window.matchMedia()
méthode, les écarts entre les différents navigateurs comme à comment mesurer la largeur de la barre de défilement signifie que si vous utilisez par exemplewindow.width()
il y aura une petite plage de pixels où la CSS se comporte différemment pour le JS (j'ai trouvé cela à la dure).De cet article pour plus de détails: https://www.fourfront.us/blog/jquery-window-width-and-media-queries
Utiliser quelque chose comme ce qui suit afin que votre CSS et JS de travail exactement sur les mêmes points d'arrêt:
Le Mozilla Developer Network a documenté ici: https://developer.mozilla.org/en/docs/Web/API/Window/matchMedia