小编典典

jQuery .scrollTop(); +动画

all

单击按钮时,我将页面设置为滚动到顶部。但首先我使用 if 语句查看页面顶部是否未设置为 0。然后如果它不是 0,我将动画页面滚动到顶部。

var body = $("body");
var top = body.scrollTop() // Get position of the body

if(top!=0)
{
  body.animate({scrollTop:0}, '500');
}

现在棘手的部分是在页面滚动到顶部之后为某些内容设置动画。所以我的下一个想法是,找出页面位置是什么。所以我使用控制台日志来查找。

console.log(top);  // the result was 365

这给了我 365 的结果,我猜这是我在滚动到顶部之前所处的位置编号。

我的问题是如何将位置设置为 0,以便我可以添加另一个在页面为 0 时运行的动画?

谢谢!


阅读 79

收藏
2022-07-31

共1个答案

小编典典

为此,您可以为动画命令设置一个回调函数,该函数将在滚动动画完成后执行。

例如:

var body = $("html, body");
body.stop().animate({scrollTop:0}, 500, 'swing', function() { 
   alert("Finished animating");
});

在该警报代码所在的位置,您可以执行更多 javascript 以添加更多动画。

此外,“摇摆”是用来设置缓动的。查看http://api.jquery.com/animate/了解更多信息。

2022-07-31