如何在jQuery中实现文本闪烁并停止闪烁?必须兼容IE、火狐和Chrome浏览器。谢谢。
如何在jQuery中实现文本闪烁并停止闪烁?必须兼容IE、火狐和Chrome浏览器。谢谢。
对我来说,为了闪烁一些文本而使用插件似乎有点大材小用...
试试这个...
$('.blink').each(function() {
var elem = $(this);
setInterval(function() {
if (elem.css('visibility') == 'hidden') {
elem.css('visibility', 'visible');
} else {
elem.css('visibility', 'hidden');
}
}, 500);
});
blink
类的元素都将应用此样式。因此,您可以像这样使用 <span class="blink">Blinky Bill</span>
,然后在 DOM 准备就绪或类似情况下运行此代码。 - alex例如
$('.blink').blink(); // default is 500ms blink interval.
//$('.blink').blink(100); // causes a 100ms blink interval.
它也是一个非常简单的插件,你可能会扩展它来停止动画并按需启动。
这里有一个带有动画的闪烁:
$(".blink").animate({opacity:0},200,"linear",function(){
$(this).animate({opacity:1},200);
});
只需给任何您想要闪烁的元素添加 blink 类:
<div class="someclass blink">some text</div>
致谢 #jquery 中的DannyZB
特点:
@-webkit-keyframes blink {
from { opacity: 1.0; }
to { opacity: 0.0; }
}
blink {
-webkit-animation-name: blink;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: cubic-bezier(1.0,0,0,1.0);
-webkit-animation-duration: 1s;
}
似乎在Chrome中可以工作,尽管我觉得我听到了微弱的哭泣声。
将上述代码组合起来,我认为这是一个不错的解决方案。
function blink(selector){
$(selector).animate({opacity:0}, 50, "linear", function(){
$(this).delay(800);
$(this).animate({opacity:1}, 50, function(){
blink(this);
});
$(this).delay(800);
});
}
至少在我的网站上它是能够工作的。 http://140.138.168.123/2y78%202782
fadeIn()
和 fadeOut()
对你来说不够用吗? - alex.
setInterval(function() {
$('.blink').fadeIn(300).fadeOut(500);
}, 1000);
// Start blinking
$(".myblink").css("text-decoration", "blink");
// Stop blinking
$(".myblink").css("text-decoration", "none");
setInterval(function() {
$( ".blink" ).fadeToggle();
}, 500);
如果你正在寻找更高级的东西...
//Blink settings
var blink = {
obj: $(".blink"),
timeout: 15000,
speed: 1000
};
//Start function
blink.fn = setInterval(function () {
blink.obj.fadeToggle(blink.speed);
}, blink.speed + 1);
//Ends blinking, after 'blink.timeout' millisecons
setTimeout(function () {
clearInterval(blink.fn);
//Ensure that the element is always visible
blink.obj.fadeIn(blink.speed);
blink = null;
}, blink.timeout);
<div>some <span class="blink">text</span> are <span class="blink">blinking</span></div>
<button onclick="startBlink()">blink</button>
<button onclick="stopBlink()">no blink</button>
<script>
function startBlink(){
window.blinker = setInterval(function(){
if(window.blink){
$('.blink').css('color','blue');
window.blink=false;
}
else{
$('.blink').css('color','white');
window.blink = true;
}
},500);
}
function stopBlink(){
if(window.blinker) clearInterval(window.blinker);
}
</script>
$.fn.blink = function(times, duration) {
times = times || 2;
while (times--) {
this.fadeTo(duration, 0).fadeTo(duration, 1);
}
return this;
};
setInterval(function())
可能会带来一些问题(冒泡、停止、保持“开启”等)。非常感谢! - Pedro Ferreira