2009-06-05 11 views
2

Voici ce que j'ai jusqu'à présent:éléments de réglage sur la base scrollHeight utilisant JQuery

function loadOff(){ 
    $(document).ready(function(){ 
     $("#eLoader").ajaxStop(function(){ 
      $(this).hide(); 
      $("#eventsContent").show(); 
      var h = document.body.scrollHeight; 
      $("#bodyBackground").css("height",h+100+"px"); 
      $("#sidePanel1").css("height",h-105+100+"px"); 
      $("#bottom").css("top",h+100+"px"); 
     }); 
     }); 
    } 

Ceci est une fonction de rappel pour une fonction ajax JQuery, essentiellement ce qui est fait est quand tout ajax est terminé .ajaxStop() il cache le chargeur puis montre le contenu.

Le problème que je rencontre est d'ajuster bodyBackground, sidePanel et bottom pour s'adapter au contenu. Je ne m'inquiète pas de l'avoir élastique et rétracter pour un contenu court à ce stade, je voudrais juste qu'il s'étende au bon positionnement en fonction de la longueur du contenu.

Tous les divs sont positionnés de façon absolue. Les nombres dans la fonction sont décomposés simplement pour le rendre facile à expliquer. -105 est l'offsetTop de cet élément et +100 est la marge entre la fin du contenu et les éléments.

S'il existe un moyen meilleur et plus efficace d'atteindre ce résultat, dites-le.

Merci.

+0

Pouvez-vous nous donner une idée plus claire de ce que vous voulez qu'il ressemble? –

+0

Je voudrais que sidePanel1 et bodyBackground s'étirent juste en dessous du contenu chargé (100px) et que le fond soit 100px en dessous du contenu. – Jeremy

Répondre

4

Selon votre code, la seule chose que vous devriez voir est le top 105px de # sidePanel1. Est-ce votre intention? (H = le bas de la fenêtre, en fonction de votre code.)

Tirer avec les modèles JQuery, vous pouvez utiliser

var h = $(window).height(); 

Peut-être que vous êtes à la recherche de ce lieu de la taille de la fenêtre du navigateur? Il obtiendra la hauteur de l'élément de contenu.

$("#eventsContent").outerHeight(); 
+0

Je verrai si cela change quoi que ce soit. Mon intention est d'étirer la page (en termes simples), je suis/suis sous la compréhension que scrollHeight a la distance totale du haut de la page au bas de la page (pas seulement la fenêtre visible). J'essayais d'obtenir la longueur du document et de déplacer ces divs 100px en dessous de cette longueur ... théoriquement. – Jeremy

+0

Même résultat. son déplace les divs, les maths vérifie (l'addition). Le problème réside dans la variable h. – Jeremy

+0

Jeremy, les nouvelles informations que j'ai ajoutées à cette réponse vous aident-elles? –

Questions connexes