【发布时间】:2015-01-22 16:13:56
【问题描述】:
我有一个jQuery动画,它在.rope的点击功能上呈现窗帘打开和关闭
当页面加载完毕后窗帘自动打开
$(".rope").trigger('click');
到字符串的末尾。
完整的代码效果很好,但是当页面加载时,我希望它在窗帘打开之前延迟几秒钟,而不是在点击时。我尝试在 .animate 之前和 .ready 之前添加 .delay(2000),我正在玩弄 setTimeout 但我不确定将它放在哪里,或者它是否是我需要的。我的 javascript 技能非常基础。这是我正在使用的。我只是想添加延迟
jQuery(document).ready(function($) {
$curtainopen = false;
$(".rope").click(function(){
$(this).blur();
if ($curtainopen == false){
$(this).stop().animate({top: '0px' }, {queue:false, duration:500, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'60px'}, 2000 );
$(".rightcurtain").stop().animate({width:'60px'},2000 );
$curtainopen = true;
}else{
$(this).stop().animate({top: '-40px' }, {queue:false, duration:500, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'50%'}, 2000 );
$(".rightcurtain").stop().animate({width:'51%'}, 2000 );
$curtainopen = false;
}
return false;
});
$(".rope").trigger('click');
});
【问题讨论】:
-
只需将点击函数的内容移动到外部函数并在点击侦听器中调用它,同时在页面加载时调用。或者你可以做
$('.rope').delay(2000).trigger('click'); -
@KaiQing 不,
.delay()仅适用于动画队列,.trigger()不属于其中。 -
很公平。设置超时
标签: javascript jquery