下面的代码几乎是完美的,正是我需要它来阻止一件小事。当我点击我的小按钮时,div直接切换,有没有办法在1秒之后切换这些div?
测试网址:http://www.eirestudio.net/hosting-files/here/index.htm
$('#featured li.block a.click_button:odd').css('display', 'none');
var isAnimating = false;
$('a.buttons').click(function()
{
if(!isAnimating) {
isAnimating = true;
setTimeout("isAnimating = false", 2000)
$('#featured li.block a').toggle();
var f = function($this, count)
{
$this.animate({
bottom: "-=200"
}, 60, function() {
$this.css('bottom', '250px').animate({
bottom: "-=185px"
}, 60, function() {
if (count > 0) {
count = count - 1;
f($this, count);
}
});
});
};
$('#featured li.block div').each( function(i)
{
var $this = $(this);
setTimeout( function()
{
f( $this, 12 );
}, i*120 ); // the ith div will start in i*100ms
}).toggle();
}
else {
e.preventDefault();
}
});
E * DIT:基本上,当我点击按钮时,动画应立即开始,同时动画(1秒钟说)然后切换div .. *
答案 0 :(得分:1)
将您的整个动画代码放在一个新函数中,比如animate()。然后:
$('a.buttons').click(setTimeout(animate, INTERVAL));
适应您的情况:)
答案 1 :(得分:1)
$('a.buttons').click(function(e){$('#theDiv').delay(1000).toggle(); return false;});
答案 2 :(得分:1)
使用Greg B的答案,试试:
$('#featured li.block div').each(function(i) {
var $this = $(this);
setTimeout(function() {
f($this, 12);
}, i * 120); // the ith div will start in i*100ms
$this.delay(1000).toggle();
});
答案 3 :(得分:1)
这应该解决问题。
setTimeout(function(){
$('#featured li.block div').toggle();
}, 1000);
因为如果我正确理解了问题,你希望卷轴与当前动画一起旋转,但是在一秒之后图像切换,而不是旋转而不是旋转。如果您移除其他切换开关并将切换器置于超时时间,则应获得所需的效果。
jsfiddle上的代码示例。