Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跨浏览器jquery动画scrollTop_Javascript_Jquery_Scrolltop - Fatal编程技术网

Javascript 跨浏览器jquery动画scrollTop

Javascript 跨浏览器jquery动画scrollTop,javascript,jquery,scrolltop,Javascript,Jquery,Scrolltop,我在将jquery animate scrollTop设置为已定义的div时遇到了一个问题 我使用以下代码设置滚动动画: $('body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){ $('#ajax_load').load('file.php'); }); 但这在Firefox或IE中不起作用 当我使用$('html').animate而不是$('body')。anim

我在将jquery animate scrollTop设置为已定义的div时遇到了一个问题

我使用以下代码设置滚动动画:

$('body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
    $('#ajax_load').load('file.php');
});
但这在Firefox或IE中不起作用

当我使用
$('html').animate
而不是
$('body')。animate
在Chrome中不起作用

我还尝试使用这两种方法:
$('html,body').animate
,但问题是回调函数
$('ajax_load').load('file.php')执行两次,该调用文件两次

我使用php暂时解决了这个问题,但是这个解决方案迫使我在每个页面上重复代码2次,以生成两个支持
$('body')。animate
$('html')。animate
的浏览器数组

我在这里搜索了一下,发现了这个:但是没有用

我还尝试:

$(窗口)。设置动画

$(文档)。设置动画

$(“#容器div”)。设置动画

但没有办法做到这一点


我能找到一个跨浏览器的方法来实现这一点吗?

黑客解决方案可能会奏效

$('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500);

setTimeout(function(){
    $('#ajax_load').load('file.php');
}, 500);
如中所述

它不能在所有主流浏览器上运行。当应用于“html”时,并不是所有的程序都支持滚动,有些程序需要“body”。这取决于您是否处于怪癖模式。设置iFrame动画时,问题更大


主题发起者最终将动画应用到
html,body
,而不是彼此。

是的,我读了这篇文章,但我决定搜索并询问是否有任何黑客攻击itdelay(500)没有任何效果,我不知道为什么?我测试了延迟(10000),但相同的结果“没有延迟”他。。。是的,看起来load()方法不会排队,但我在答案中添加了另一个解决方案,应该可以解决这个问题