2014-09-18 63 views
0

我使用下面的JavaScript/jQuery的脚本来创建平滑锚点滚动溢出-X:隐藏休息平滑滚动

$(function() { 
    $('a.page-scroll').bind('click', function(event) { 
     event.preventDefault(); 
     var $anchor = $(this); 
     console.log($anchor) 
     $('html,body').stop().animate({ 
      scrollTop: $($anchor.attr('href')).offset().top 
     }, 1500, 'easeInOutExpo'); 
    }); 
}); 

,除非以下是包含在我的CSS样式表伟大的工程

html,body { 
    /*Irrelevant style rules*/ 
    overflow-x: hidden; 
} 

这是怎么发生的?当我删除或注释掉overflow-x:hidden时,脚本完美地工作。如果我离开它,它根本不起作用。

+0

我只删除x轴滚动条,这应该不会干扰y轴滚动吗? – jkarimi 2014-09-18 22:49:21

+0

http://jsbin.com/vifexa/2/edit适合我。 – 2014-09-18 22:53:05

回答

1

this work around的第一部分告诉我,你不能有一个隐藏的溢出和另一个可见。我添加了一些JS来更改动画事件的html,body css。哈克,但它的作品!

$(function() { 
    $('a.page-scroll').bind('click', function(event) { 
    event.preventDefault(); 
    var $anchor = $(this); 
    $('html,body').css(
    "overflow-x", "visible" 
    ); 
    $('html,body').stop().animate({ 
     scrollTop: $($anchor.attr('href')).offset().top 
    }, 1500, 'easeInOutExpo'); 
    $('html,body').css(
     "overflow-x", "hidden" 
    ); 
    }); 
}); 
+0

这必须是迄今为止我所见过的最奇怪的错误。但它解决了这个问题,谢谢。 – 2016-12-07 11:48:35