[英]jQuery smooth scroll when showing element
我有一个简单的jQuery滚动功能,可在单击元素时滚动到div。
我遇到的问题是,因为函数同时显示了一个元素然后滚动到该元素,所以滚动不平滑,因为在显示div的同时,滚动开始了
有什么方法可以延迟动画,以便#wrapper div可以加载,然后动画可以滚动? 或沿着这些线的东西,以便滚动是平滑的
这是jQuery函数:
jQuery(document).ready(function($) {
$('.divOne').click(function() {
$('#wrapper').show();
$('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow');
});
});
尝试对动画使用delay()
。
jQuery(document).ready(function($) {
$('.divOne').click(function() {
$('#wrapper').show();
$('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow').delay(2000);
});
});
尝试使用.fadeIn()
代替.show()
进行回调。 见下文:
$(document).ready(function() {
$('.divOne').click(function(event) {
$('#wrapper').fadeIn(150, function() {
$('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow');
});
});
});
您可以预加载图像,因此当有人单击时它们已经被加载,并且带有图像的#wrapper
元素将立即显示
jQuery(document).ready(function($) {
$('#wrapper img').each(function() {
var img = new Image();
img.src = this.src;
});
$('.divOne').click(function() {
$('#wrapper').show();
$('html,body').animate({
scrollTop: $('.divTwo').offset().top
}, 'slow');
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.