J'ai fait une fonction où j'ai vérifié si la fenêtre a été redimensionnée et un élément est visible afin de changer certaines classes et ajouter un peu de CSS. Le problème est que si je rafraîchis la page, les modifications sont annulées. Voici un extrait de mon code:

$(document).ready(function() {

 $(window).resize(function() {
   if(isMenuVisible() == true){
     $('#my-nav').removeClass('navbar-fixed-bottom');
     $('#my-nav').addClass('navbar-fixed-top');
     $('body').css('padding-top', '50px');
      } else{
      $('#my-nav').removeClass('navbar-fixed-top');
      $('#my-nav').addClass('navbar-fixed-bottom');
      $('body').css('padding-top', '0');  
   }
 }) ;
});
0
Adrian.I 7 août 2016 à 22:01

3 réponses

Meilleure réponse
$(document).ready(function() {  
  
 function resizeChanges(){
    if(isMenuVisible() == true){
       $('#my-nav').removeClass('navbar-fixed-bottom');
       $('#my-nav').addClass('navbar-fixed-top');
       $('body').css('padding-top', '50px');
     }else{
       $('#my-nav').removeClass('navbar-fixed-top');
       $('#my-nav').addClass('navbar-fixed-bottom');
       $('body').css('padding-top', '0');  
     }   
 }
 
 $(window).resize(resizeChanges);
 
 resizeChanges();
});

De cette façon, vous définissez une fonction distincte pour effectuer vos modifications, vous ajoutez l'écouteur d'événements pour le déclencher, mais vous appelez également cette fonction elle-même après le chargement / rafraîchissement.

2
yuriy636 7 août 2016 à 19:10

Essayez de déclencher l'événement de redimensionnement sur la fenêtre après le chargement.

$(window).trigger('resize');
0
Zdenek Hatak 7 août 2016 à 19:05

Si l'utilisateur actualise la page, toutes les modifications du côté client seront perdues. Cependant, vous pouvez détecter quand l'utilisateur actualise la page et enregistrer les valeurs côté serveur. Et puis, lorsque la page est à nouveau chargée, restaurez ces valeurs.

$(window).on('beforeunload', function(){
    // save the values to server side
});

$(window).on('load', function(){
    // restore values
});
0
Vicente Olivert Riera 7 août 2016 à 19:06