尽管所有关于 SO re 闪烁文本的帖子,我都没有找到完美的解决方案。大多数通过隐藏文本来闪烁文本 - 这意味着用户无法可靠地单击它(在隐藏周期期间,它不可单击)。
我已经从其他示例中抓取了一些零碎的内容来创建解决方案的开始,但是我在参数方面遇到了困难。
期望:
$('#selector').click(function() {
blink(this, speed, iterations); //iterations==0 for unlimited iterations
});
问题:
- 在所需的迭代次数后闪烁不会停止(或
0
永远闪烁)。
请注意,我不希望使用.hide
,或任何其他在闪烁周期的“不可见”期间呈现 div 不可点击的 jQ 方法。.toggle
.fade
这是我到目前为止的代码:jsFiddle
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var pad = 0;
$('#clignotant').click(function() {
if (pad==0) {
pad++;
blink(this, 800, 15);
}else{
alert('Not document.load, so now send user to the streaming video');
}
});
function blink(selector, blink_speed, iterations){
counter = 0;
$(selector).animate({opacity:0}, 50, "linear", function(){
$(this).delay(blink_speed);
$(this).animate({opacity:1}, 50, function(){
if (iterations == 0) {
blink(this, blink_speed, iterations);
}else if (counter>iterations) {
return false;
}else{
counter++;
blink(this, blink_speed, iterations);
}
});
$(this).delay(blink_speed);
});
}
//This line must come *AFTER* the $('#clignotant').click() function !!
window.load($('#clignotant').trigger('click'));
}); //END $(document).ready()
</script>
</head>
<body>
<div id="clignotant" style="background-color:#FF6666;width:500px;
height:100px;line-height:100px;text-align:center;">
This box, and the text in it, are blinking
</div>
</body>
</html>
资料来源:
摩西·克里斯蒂安在这个 SO post
emgee 的jsFiddle中的回答