为什么此代码在Google Chrome中正常运行,但拒绝使用Safari(以及在Mac和iPhone上)?

时间:2017-10-03 17:57:25

标签: javascript iphone google-chrome safari

代码有助于将用户的屏幕平滑地降低到锚点,并从上方进行必要的缩进,以便固定在顶部的菜单不会遮挡它。

<script>
      $(document).ready(function(){
            $('a[href^="#"]').bind('click.smoothscroll',function (e) {
                e.preventDefault();
                var target = this.hash,
                $target = $(target);
                $calculus = ( $target.offset().top - 75 );
            $target_to = $calculus.toFixed();
                $('html, body').stop().animate({
                    'scrollTop': ($target_to+'px')
                }, 900, 'swing');
            });
        });
</script>

1 个答案:

答案 0 :(得分:0)

我找到了适用于所有平台的最佳解决方案:

 $(document).ready(function(){
    $('a[href^="#"], *[data-href^="#"]').on('click', function(e){
        e.preventDefault();
        var t = 1000;
        var d = $(this).attr('data-href') ? $(this).attr('data-href') : $(this).attr('href');
        $('html,body').stop().animate({ scrollTop: $(d).offset().top - 80 }, t);
    });
});