Javascript 在CSS上禁用滚动时使用jQuery滚动

Javascript 在CSS上禁用滚动时使用jQuery滚动,javascript,jquery,Javascript,Jquery,我想使用jQuery动画滚动页面,但CSS中禁用了滚动,不允许进行动画: $('html, body').css({ 'overflow': 'hidden', 'height': '100%' }); $('html, body').animate({ scrollTop: 939 }, 2500); 问题是:我可以建议使用边距顶部。由于没有滚动条,因此对用户的效果相同: 我可以建议改用页边距顶部。由于没有滚动条,因此对用户的效果相同: 如果设置overflo

我想使用jQuery动画滚动页面,但CSS中禁用了滚动,不允许进行动画:

$('html, body').css({
    'overflow': 'hidden',
    'height': '100%'
});


$('html, body').animate({
    scrollTop: 939
}, 2500);

问题是:

我可以建议使用
边距顶部。由于没有滚动条,因此对用户的效果相同:


我可以建议改用
页边距顶部
。由于没有滚动条,因此对用户的效果相同:


如果设置overflow:hidden,则不会发生滚动事件。因此,也不能使用动画触发它。实际上,如果用户无法滚动,那么设置滚动动画有什么意义呢

一种解决方案是将内容包装到另一个容器中,并设置容器动画,如下所示:

演示:

还有Javascript:

$('#content').animate({ top: -939 });

如果设置overflow:hidden,则不会发生滚动事件。因此,也不能使用动画触发它。实际上,如果用户无法滚动,那么设置滚动动画有什么意义呢

一种解决方案是将内容包装到另一个容器中,并设置容器动画,如下所示:

演示:

还有Javascript:

$('#content').animate({ top: -939 });

除了基于webkit的浏览器之外,它在任何地方都可以工作。当然这不是一个答案,只是一个有趣的注释。@Tommi“无处不在”-真的吗?我在Chrome中找到了一个适合我的解决方案&IE 10,我在Opera 12.16中尝试过;IE10处于10和9模式,最新的FF、Chrome和Safari(Windows)。它不适用于Chrome和Safari(都基于webkit)@Tommi我正在寻找一个跨浏览器的解决方案。除了基于webkit的浏览器之外,它在任何地方都可以使用。当然这不是一个答案,只是一个有趣的注释。@Tommi“无处不在”-真的吗?我在Chrome中找到了一个适合我的解决方案&IE 10,我在Opera 12.16中尝试过;IE10处于10和9模式,最新的FF、Chrome和Safari(Windows)。它在Chrome和Safari(都基于webkit)中不起作用@Tommi我正在寻找一个跨浏览器的解决方案。它看起来更像是一种技巧,而不是一种正确的方法。而且,与预期的结果相比,这不是很顺利:我相信应该有办法。只要看看这个隐藏在其主体中的溢出的站点:它看起来更像是一种技巧,而不是一种正确的方法。而且,与预期的结果相比,这不是很顺利:我相信应该有办法。只要看看这个在其主体中隐藏了溢出的站点:有趣的是,您在动画中使用了属性
top
,而不是
scrollTop
。我也在用一个容器尝试它,但它似乎不适用于
scrollTop
。谢谢@阿尔瓦罗那里没有魔法。滚动被禁用,“scrollTop”动画属性也被禁用,因为它会触发滚动本身。有趣的是,您在动画中使用了属性
top
,而不是
scrollTop
。我也在用一个容器尝试它,但它似乎不适用于
scrollTop
。谢谢@阿尔瓦罗那里没有魔法。该滚动被禁用,“scrollTop”动画属性也被禁用,因为它会触发滚动本身。
#content{position:relative}
$('#content').animate({ top: -939 });