我使用下面的JavaScript进行滚动,但它在Safari中不起作用。
我删除了以下代码,该代码在Safari中正常运行,但运行不顺畅。
jQuery(".scrollBg a").click(function(event){
event.preventDefault();
var window_width = jQuery(window).width();
// alert(window_width);
//jQuery('html').animate({scrollTop:jQuery(this.hash).offset().top-38+'px'}, 1000);
if(window_width<=375){
jQuery('html').animate({scrollTop:jQuery(this.hash).offset().top+60+'px'}, 1000);
}
else if(window_width<=500){
jQuery('html').animate({scrollTop:jQuery(this.hash).offset().top+60+'px'}, 1000);
}
else {
jQuery('html').animate({scrollTop:jQuery(this.hash).offset().top-38+'px'}, 1000);
}
});
请知道Safari的工作流畅滚动吗?
答案 0 :(得分:0)
OMG。不要重新发明轮子。你应该用 http://cubiq.org/iscroll-5
适用于任何浏览器(safari,chrome,safari mobile,chrome mobile,ffox)。
答案 1 :(得分:0)
对于任何感兴趣的人,需要在 Safari > Develop > Experimental Features > CSSOM View Smooth Scrolling 下启用 Safari 的滚动动画。大多数用户不会启用此选项,因为默认情况下它在 Safari 中未启用,但浏览器仍将移动到其预期目标。使用这个:
window?.scrollTo({ top: ref?.current?.offsetTop - 48, behavior: "smooth" });
其中“ref”是您的预期目标。所有其他主要浏览器都支持开箱即用的动画。要查看全面支持,请访问 CanIUse。