首页 > 解决方案 > 为什么在 Chrome 中它是 $("html") 而在 Safari 中 $("body") 用于滚动效果?我怎样才能做出完美的解决方案?

问题描述

我发现这正是我想要的: jQuery .scrollTop(); +动画

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

但是作为问题中提到的评论的问题是触发器功能会触发两次。

我意识到这是因为$("html, body")让两个元素绑定了这个事件。

但是,我注意到我不能简单地删除一个,因为它在 Safaribody中有效,而在 Chromehtml中有效。

而且我不知道在我可以访问的其他设备上会发生什么。

那么,是否有任何完美的解决方案,我不需要触发两次功能?

标签: javascriptjquerycross-browser

解决方案


推荐阅读