2014-06-13 2 views
-1

Désolé d'avance si c'est une question mineure, mais je suis nouveau à javascript. J'écris du code pour une page Web avec des arrière-plans de couleur pleine largeur. Essentiellement, ce que j'essaie de faire est de détecter la hauteur de la fenêtre, puis assurez-vous que le bloc de couleur est la taille de la fenêtre. La fonction fonctionne bien sur le chargement de la page. Le problème est lorsque je rétrécis la fenêtre, la hauteur div ne change pas avec la taille de la fenêtre. Je reçois toutes sortes d'erreurs, comme des graphiques qui sortent de derrière la div.jQuery fenêtre redimensionner la fonction ne fonctionne pas

Je pense que ce qui me manque est un moyen de détecter la hauteur du contenu dans chaque div et redimensionner la hauteur en conséquence.

Vous pouvez voir comment cela fonctionne à http://pressshoppr.com

Voici le code:

$(function(){ 
    var windowH = $(window).height(); 
    if(windowH > wrapperH) { 
     $('.fullWidthSectionBG').css({'height':($(window).height())+'px'}); 
     $('.fullWidthSectionBGFirst').css({'height':($(window).height())-120+'px'}); 
    } 
    $(window).resize(function(){ 
     var windowH = $(window).height(); 
     var wrapperH = $('.fullWidthSectionBG').height(); 
     var newH = wrapperH + differenceH; 
     var truecontentH = $('.fullWidthSection').height(); 
     if(windowH > truecontentH) { 
      $('.fullWidthSectionBG').css('height', (newH)+'px'); 
      $('.fullWidthSectionBGFirst').css('height', (newH)-120+'px'); 
     } 
    }); 
}); 
+0

Pourquoi n'êtes-vous pas simplement en utilisant '$ (fenêtre) .height()' dans votre fonction de modification de taille ainsi? Si cela fonctionne bien sur le chargement de la première page, je ne sais pas pourquoi vous auriez besoin de faire des calculs sur les hauteurs lorsque la fenêtre est redimensionnée. – Samsquanch

Répondre

0

Je ne suis pas sûr que je comprends tout à fait l'effet que vous allez pour ici, mais je suppose que si votre initiale Un peu de code l'atteint, tout ce que vous avez à faire est de le réutiliser exactement. Traiter chaque redimensionnez comme si la page venait de charger, et obtenir les résultats que vous voulez, par exemple:

$(function(){ 

    // encapsulate the code that we know WORKS 
    function init() { 
    var windowH = $(window).height(); 
    if(windowH > wrapperH) { 
     $('.fullWidthSectionBG').css({'height':($(window).height())+'px'}); 
     $('.fullWidthSectionBGFirst').css({'height':($(window).height())-120+'px'}); 
    } 
    } 

    // call on page ready 
    init() 

    // ...and call again whenever the page is resized 
    $(window).resize(init) 

}); 
+0

Merci! J'ai essayé cela, et cela n'a pas fonctionné - et j'ai alors réalisé que j'avais besoin de mettre en place une fonction pour gérer le changement d'orientation aussi. Semble fonctionner, avec quelques re-jigger supplémentaire. – user3739016

Questions connexes