如果你不想要jQuery UI的开销,我最近用.animate()
写了一个递归解决方案。您可以根据需要自定义延迟和颜色。
function doBlink(id, count) {
$(id).animate({ backgroundColor: "#fee3ea" }, {
duration: 100,
complete: function() {
// reset
$(id).delay(100).animate({ backgroundColor: "#ffffff" }, {
duration: 100,
complete: function() {
// maybe call next round
if(count > 1) {
doBlink(id, --count);
}
}
});
}
});
}
当然,你需要的颜色插件来获得backgroundColor
与.animate()
工作。 https://github.com/jquery/jquery-color
并提供一点上下文,这是我如何调用它。我需要将页面滚动到目标div,然后眨眼。
$(window).load(function(){
$('html,body').animate({
scrollTop: $(scrollToId).offset().top - 50
}, {
duration: 400,
complete: function() { doBlink(scrollToId, 5); }
});
});
请不要。如果必须,只需使用高亮效果突出显示它(http://docs.jquery.com/UI/Effects/Highlight),但不要使其闪烁。 – tvanfosson 2011-03-05 17:28:40
@tv我认为短暂的两三次“眨眼”(其中“眨眼”是希望有微妙的东西,比如动画边框发光或类似的东西)可以,并且不刺激,但绝对老式地长时间闪烁时间会很糟糕。 – Pointy 2011-03-05 17:30:46
呵呵,我知道眨眼是令人讨厌的,但它实际上在这里有一个目的。用户不需要整天坐在显示器旁边,所以他必须看看是否有东西从距离发生变化 – ZolaKt 2011-03-05 17:33:43