跨浏览器jquery animate scrollTop

sem*_*sem 6 javascript jquery scrolltop

我正面临着jquery animate scrollTop到定义div的问题.

我使用此代码为滚动设置动画:

$('body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
    $('#ajax_load').load('file.php');
});
Run Code Online (Sandbox Code Playgroud)

但这在Firefox或IE中不起作用.

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

我也尝试使用两者:$('html,body').animate但问题是回调函数$('#ajax_load').load('file.php');执行了两次,这次调用文件2次.

我通过使用php临时解决了这个问题,但这个解决方案迫使我在每个页面重复代码2次,以制作支持$('body').animate和支持的2个浏览器阵列$('html').animate.

我在这里搜索并发现了这个:jquery animate scrolltop回调但是没有用.

我也尝试过:

$(window).animate

$(document).animate

$('#container-div').animate

但没办法实现这一目标.

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

tra*_*per 1

Hacky 解决方案可能会成功......

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

setTimeout(function(){
    $('#ajax_load').load('file.php');
}, 500);
Run Code Online (Sandbox Code Playgroud)