為什么delay()在這里工作:$('#tipper').mouseout(function() { $('#tip').delay(800).fadeOut(100);});但這沒有延遲:$('#tipper').mouseout(function() { $('#tip').delay(800).css('display','none');});//編輯 - 這是一個有效的解決方案$('#tipper').mouseleave(function() { setTimeout( function(){ $('#tip').css('display','none'); },800);});
3 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
一個小小的jQuery擴展可以幫助解決這個問題。你可以稱之為qcss:
$.fn.extend({
qcss: function(css) {
return $(this).queue(function(next) {
$(this).css(css);
next();
});
}
});
這可以讓你寫:
$('.an_element')
.delay(750)
.qcss({ backgroundColor: 'skyblue' })
.delay(750)
.qcss({ backgroundColor: 'springgreen' })
.delay(750)
.qcss({ backgroundColor: 'pink' })
.delay(750)
.qcss({ backgroundColor: 'slategray' })
這可以是定義鏈式動畫的一種相當優雅的方式。請注意,在這個非常簡單的形式中,qcss僅支持包含CSS屬性的單個對象參數。(你需要做更多的工作才能支持.qcss('color', 'blue')。)
這是jsfiddle 的一個例子。
- 3 回答
- 0 關注
- 619 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消