滚动运动在Safari中不起作用

时间:2015-07-08 12:52:56

标签: javascript jquery performance scroll safari

我使用下面的JavaScript进行滚动,但它在Safari中不起作用。

我删除了以下代码,该代码在Safari中正常运行,但运行不顺畅。

Link is here

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的工作流畅滚动吗?

2 个答案:

答案 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