Jquery 标签上的默认操作延迟
是否可以延迟默认操作 我有这个链接,在我点击它之后,我会显示一个隐藏的div和内容。然后我想用我的屏幕向下滑动到那个div,所以新的div在我的屏幕上,但我的问题是,在我点击按钮后,div需要一些时间来动画化,因此我需要一些延迟,以便在div变为可见后滚动条将启动 我犯了一个错误 HTMLJquery 标签上的默认操作延迟,jquery,jquery-animate,delay,Jquery,Jquery Animate,Delay,是否可以延迟默认操作 我有这个链接,在我点击它之后,我会显示一个隐藏的div和内容。然后我想用我的屏幕向下滑动到那个div,所以新的div在我的屏幕上,但我的问题是,在我点击按钮后,div需要一些时间来动画化,因此我需要一些延迟,以便在div变为可见后滚动条将启动 我犯了一个错误 HTML <div class="wrapper"> <div class="first-div"> <a href="#">Link1</a>
<div class="wrapper">
<div class="first-div">
<a href="#">Link1</a>
<a id="activate-two" href="#second">Link2</a>
<a href="#">Link3</a>
</div>
<div class="second-div" id="second">
<a id="activate-three" href="#third">Link1</a>
<a href="#">Link2</a>
<a href="#">Link3</a>
</div>
<div class="third-div" id="third">
<a href="#">Link1</a>
<a href="#">Link2</a>
<a id="activate-four" href="#">Link3</a>
</div>
</div>
JQUERY
$(document).ready(
function(){
$("#activate-two").click(function(){
$("#second").animate({
height:'show'
});
});
});
您不需要延迟,您需要利用
.animate
回调函数:
$("#activate-two").click(function(){
$("#second").animate({
height:'show'
}, function() {
//Fire your scroll function here!
});
不要使用延迟,就像这样-使用回调
jQuery动画具有一个在动画完成时将触发的属性。然后,您可以滚动到对象的最终位置。这可能会帮助您:
$("#activate-two").click(function(){
$("#second").show("100",function(){
$('html, body').animate({ scrollTop: $("#second").offset().top }, 'slow');
})
});
下面是一个更新的Does.delay()不起作用吗?这看起来很完美!我稍后会测试,然后回来。非常感谢您更新小提琴。
$("#activate-two").click(function(){
$("#second").show("100",function(){
$('html, body').animate({ scrollTop: $("#second").offset().top }, 'slow');
})
});