我想向下滚动到我页面中的div,然后向上滚动一下。
使用jquery。
我得到了这个onclick bind:
{
$.scrollTo( $('#theDestDiv'), 1000);
window.scrollTo(0, (window.pageYOffset)-100 );
}
问题是:window.scroll在页面完成滚动到theDestDiv之前触发 然后pageYOffset获取错误的值。
我尝试了setTimeout,只有超时是向下滚动的时间才有效。
任何想法如何解决?
答案 0 :(得分:1)
您是否尝试过使用jquery的动画完整回调函数?您可以在动画完成后运行代码。以下是一个例子。
var scrollTo = $('#theDestDiv').offset(); //find the target
$('html, body').animate({scrollTop:scrollTo}, 1000, function(){
//on animation complete, scroll back up
var scrollUp = scrollTo.top-100;
$('html, body').animate({scrollTop:scrollUp}, 1000);
});
如果你试图给它一种'反弹',我会建议使用jquery.easing插件。您想要使用的缓动是easeOutBack,以便动画通过其最终位置并缓慢返回。 http://gsgd.co.uk/sandbox/jquery/easing/
答案 1 :(得分:1)
$.scrollTo( $('#theDisclaimer'), 1000);
scroll_up_disclaimer();
function scroll_up_disclaimer(){
$("html, body").animate({scrollTop:"-=68"})
}