[英]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.