J'essaie de combiner le plugin Superfish jQuery avec l'extrait adapt.js de Nathan Smith, qui charge dynamiquement dans différents fichiers CSS en fonction de la largeur du navigateur. Je veux désactiver/remplacer/quelque chose le menu Superfish en mode mobile, parce que les listes déroulantes n'ont aucun sens ici. J'ai essayé de détecter le changement et de désactiver le menu, mais j'en ai besoin pour le réactiver lorsque la fenêtre est redimensionnée à nouveau.Désactiver superfish sur l'événement de redimensionnement
Voici ce que j'ai:
function htmlId(i, width) {
document.documentElement.id = 'pagesize_' + i;
}
var ADAPT_CONFIG = {
path: '/css/',
dynamic: true,
callback: htmlId,
range: [
'0px to 760px = mobile.css',
'760px = 960_12.css'
]
};
function sfMenu() {
$("#pagesize_1 ul.sf-menu").superfish({
delay: 800,
animation: {opacity:'show'},
speed: 'fast',
autoArrows: true,
dropShadows: true
});
}
$(document).ready(function(){
sfMenu();
});
La raison était de changer l'ID de l'élément html sur resize
(entre pagesize_0
et pagesize_1
- qui fonctionne) et à utiliser des sélecteurs de descendants en CSS pour désactiver le menu, mais ça ne marche pas. J'ai essayé de relancer sfMenu()
sur resize
(code non montré ci-dessus), mais il ne semble pas inspecter le DOM modifié, réaliser pagesize_1
n'existe plus, puis échouer gracieusement (ce qui je pense réaliserait l'effet que je suis après).
Des pensées? Idéalement, je voudrais détruire la fonction superfish
sur redimensionner-vers-mobile, puis réinstallez-le lorsque l'écran est de nouveau grand.
J'ai essayé d'utiliser detach() et append() mais je n'ai pas de chance - je ne peux pas obtenir appen() pour fonctionner correctement. Quelqu'un a-t-il une idée? – melat0nin