2015-04-17 56 views
1

在此Dev page您可以将同一页面锚点跳转到滚动位置而不是实际锚点吗?

蓝色下“自动滚动”的标题文字下箭头使用了一个简单的锚跳转到页(和一些JavaScript来滚动拖慢上的一个点,但我不认为就我的问题而言,事关重大)。

正如您所看到的,我还使用Skrollr为对象设置动画,并且当您向下滚动手动时,当iMac到达页面顶部时,页面会“粘”。这是我希望“自动滚动”箭头按钮跳转到并停止的位置。

现在,它滚动到那个位置,但随后继续走得更远。

我试过把锚元素放在所有不同的地方,但没有得到想要的休息处。这让我想知道是否可以指定一个锚点向下滚动到某个滚动位置(例如300像素),而不是实际的锚点元素。

换句话说,当用户滚动300像素时,我的skrollr代码将显示器固定到页面的顶部。所以这就是我需要“自动滚动”向下箭头跳转到的位置。

任何人都知道这是可能的,还是有其他想法?

谢谢!

+0

谢谢你们俩。蒂姆的第三种选择正是我所期待的。如果我发布了杰克想要的代码,我肯定他会说同样的事情(对此感到抱歉)。再次感谢!.... – user3304303

回答

2

如何修改您正在使用的.scrollTop()方法来滚动到显示器的顶部div而不是锚点?

$("a#anchor1").click(function(){ 
    $('html, body').animate({ 
     scrollTop: $("div#monitor").offset().top 
    }, 2500); 
    return false; 
}); 

See JSFiddle

如果你需要它滚动几个像素通过该div以使其正常工作,那么你可以随时添加或减去该点。

$("a#anchor1").click(function(){ 
    $('html, body').animate({ 
     scrollTop: ($("div#monitor").offset().top) + 100 
    }, 2500); 
    return false; 
}); 

See JSFiddle

如果您想在不参考任何这些元素的情况下向下滚动一定数量的像素,只需在body元素上设置滚动条即可。

$("a#anchor1").click(function(){ 
    $('html, body').animate({ 
     scrollTop: ($("body").offset().top) + 300 
    }, 2500); 
    return false; 
}); 

See JSFiddle

您可以在jQuery's API documentation中阅读有关.scrollTop()方法的更多信息,或者如果您更愿意使用纯JS,则可以阅读有关HTML DOM scrollTop property here的内容。

0

你可以用一个小小的javascript来做 - 可能利用你已经在那里得到的内容来减慢滚动。你可以发布该代码吗?

基本上,通过一种或另一种方法,您的滚动代码涉及告诉页面顺利滚动到其目的地。你所要做的就是提供一个不同于自然期望的目的地。