繁体   English   中英

跨浏览器jquery animate scrollTop

[英]cross browsers jquery animate 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').animate它在Chrome中不起作用。

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

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

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

我也尝试过:

$(window).animate

$(document).animate

$('#container-div').animate

但没办法实现这一目标。

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

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

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

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

正如提到这个职位

它不适用于所有主流浏览器。 当应用于'html'时,并非所有这些都支持滚动,有些需要'body'。 这取决于您是否处于怪癖模式。 在动画iframe时,它甚至会出现问题

主题启动器最终将动画应用于html,body而不是彼此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM