Comment appliquer un CSS en fonction de événement $(window).resize
Bonjour à tous,
Mon post pose 3 questions pour le prix d'une:
- La différence entre window.addEventListener('resize', MaFonction) et $(window).resize ;
- Existe-il un événement resize sur un Menu responsive et si oui comment le capturer car actuellement je teste en fonction du redimensionnement de la page ?
- Comment appliquer du CSS actuellement valable pour @media all and (max-width:368px) mais en fonction de la taille du Menu responsive?
Mon objectif est de transformer un Menu Responsive en icône en fonction de la taille de ce même Menu responsive. Actuellement, ça fonctionne par rapport à la définition de l'écran avec le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/*-------------------------------------------------------------------------------------------------------------------------------------------
Extrait du code du fichier index.css dans le répertoire css
....
-------------------------------------------------------------------------------------------------------------------------------------------*/
@media all and (max-width:368px)
{
#wb_ResponsiveMenu1 { margin: 0;}
#wb_ResponsiveMenu1 ul li a, #wb_ResponsiveMenu1 .toggle { font-size: 16px; font-weight: normal; font-style: normal; padding: 15px 20px 15px 20px;}
#wb_ResponsiveMenu1 .toggle + a { display: none !important;}
.ResponsiveMenu1 { display: none; z-index: 9999;}
#ResponsiveMenu1 { background-color: transparent;}
#wb_ResponsiveMenu1 > ul > li > a { height: auto;}
#wb_ResponsiveMenu1 .toggle { display: block; background-color: #FF6347; color: #FFFFFF; padding: 0px 20px 0px 20px; line-height: 54px; text-decoration: none; border: none;}
#wb_ResponsiveMenu1 .toggle:hover { background-color: #CCCCCC; color: #0000CD;}
[id^=ResponsiveMenu1-submenu]:checked + ul { display: block !important;}
#ResponsiveMenu1-title{ height: 71px; line-height: 71px !important; text-align: center;}
#wb_ResponsiveMenu1 ul li { display: block; width: 100%;}
#wb_ResponsiveMenu1 ul ul .toggle,
#wb_ResponsiveMenu1 ul ul a { padding: 0 40px;}
#wb_ResponsiveMenu1 a:hover,
#wb_ResponsiveMenu1 ul ul ul a { background-color: #FF6347; color: #FFFFFF;}
#wb_ResponsiveMenu1 ul li ul li .toggle,
#wb_ResponsiveMenu1 ul ul a { background-color: #FF6347; color: #FFFFFF;}
#wb_ResponsiveMenu1 ul ul ul a { padding: 15px 20px 15px 60px;}
#wb_ResponsiveMenu1 ul li a { text-align: left;}
#wb_ResponsiveMenu1 ul li a br { display: none;}
#wb_ResponsiveMenu1 ul li i { margin-right: 8px;}
#wb_ResponsiveMenu1 ul ul { float: none; position: static;}
#wb_ResponsiveMenu1 ul ul li:hover > ul,
#wb_ResponsiveMenu1 ul li:hover > ul { display: none;}
#wb_ResponsiveMenu1 ul ul li { display: block; width: 100%;}
#wb_ResponsiveMenu1 ul ul ul li { position: static;}
#ResponsiveMenu1-icon { display: block; position: absolute; left: 30px; top: 23px;}
#ResponsiveMenu1-icon span { display: block; margin-top: 4px; height: 2px; background-color: #FFFFFF; color: #FFFFFF; width: 24px;}
#wb_ResponsiveMenu1 ul li ul li .toggle:hover{ background-color: #CCCCCC; color: #0000CD;}
#wb_ResponsiveMenu1 .toggle .arrow-down { border-top-color: #FFFFFF;}
#wb_ResponsiveMenu1 .toggle:hover .arrow-down, #wb_ResponsiveMenu1 li .active .arrow-down{ border-top-color: #0000CD;}
#wb_ResponsiveMenu1 ul li ul li .toggle .arrow-down { border-top-color: #FFFFFF;}
#wb_ResponsiveMenu1 ul li ul li .toggle:hover .arrow-down, #wb_ResponsiveMenu1 ul li ul li .active .arrow-down{ border-top-color: #0000CD;}
} |
J'ai donc recopié ce code dans un fichier indexResponsiveMenu.css en supprimant @media all and (max-width:368px) {...} et sauvegardé sous le répertoire css.
Puis j'ai le code Javascript suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
$(document).ready(function()
{ var ResponsiveMenuwidthMin = 330;
$(window).resize(function() {
//alert(document.getElementById('ResponsiveMenu1').offsetWidth);
if (document.getElementById('ResponsiveMenu1').offsetWidth - ResponsiveMenuwidthMin )< 0
{
$(function(){
$("head").append(
$(document.createElement("link")).attr({rel:"stylesheet", type:"text/css", href:"css/indexResponsiveMenu.css"})
);
});
}
});
}); |
Mais résultat des courses, c'est qu'il n'y a pas l'effet escompté.
Aussi merci de tout aide pour résoudre ce problème!
Bonjour chez vous :pingoin2: