将主体向左滚动到给定的元素位置

时间:2013-02-07 13:10:03

标签: jquery scroll

我正在构建单页历史时间轴微型网站,它会自动适应浏览器宽度。

我试图在调整窗口大小时执行此操作,正文滚动到最后一次单击的元素。 article的宽度和高度始终为全宽。如果我不这样做,当窗口调整大小发生时,一切看起来都很难看。

我正在尝试这样做:

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

哪个非常好用。但事情就是在最后点击的元素上进行。所以我试图这样做:

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

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

但它似乎不起作用,元素作为正确的值(文章#a1377)。

1 个答案:

答案 0 :(得分:2)

Javascript关闭!!!

resize回调它是单击处理程序的本地元素。

假设'article' + $(this).prop("hash");确实是你想要回归的那个!!!

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

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