2013-02-07 1 views
0

Je construis un microsite de chronologie de l'historique d'une seule page et il s'adapte automatiquement à la largeur du navigateur. J'essaye de faire cela quand la fenêtre est redimensionnée, le corps défile au dernier élément cliqué. article sont toujours pleine largeur et hauteur. Si je ne fais pas cela, quand le redimensionnement des fenêtres se produit, tout semble très moche.Faire défiler le corps vers la gauche jusqu'à la position d'un élément donné

Je suis en train de le faire:

$(window).resize(function() { 
    $('body').scrollLeft($('article#a1377').offset().left); 
}); 

qui fonctionne très bien. Mais la chose le fait sur le dernier élément cliqué. Donc, je tentais de le faire:

$("header a").click(function(event){ 
    var element = 'article' + $(this).prop("hash"); 
}); 

$(window).resize(function() { 
    $('body').scrollLeft($(element).offset().left); 
}); 

Mais il ne semble pas fonctionner, et l'élément comme la valeur correcte (article # A1377).

+0

pouvez-vous donner du code html? – pbaris

Répondre

2

Fermetures Javascript !!!

L'élément n'est pas visible par le resize rappel, il est local au gestionnaire de clic.

En supposant que 'article' + $(this).prop("hash"); est vraiment ce que vous essayez de retourner !!!

var lastClicked = null; 
$("header a").click(function(event){ 
    lastClicked = 'article' + $(this).prop("hash"); 
}); 

$(window).resize(function() { 
    $('body').scrollLeft($(lastClicked).offset().left); 
}); 
+0

Cela l'a résolu. Merci pour l'explication. – pzin

Questions connexes