在jQuery中使文本闪烁的简单方法是什么,以及阻止它的方法?必须适用于IE,FF和Chrome。感谢
答案 0 :(得分:91)
一个插件来眨一些文字的声音听起来有点过分了......
试试这个......
$('.blink').each(function() {
var elem = $(this);
setInterval(function() {
if (elem.css('visibility') == 'hidden') {
elem.css('visibility', 'visible');
} else {
elem.css('visibility', 'hidden');
}
}, 500);
});
答案 1 :(得分:51)
例如
$('.blink').blink(); // default is 500ms blink interval.
//$('.blink').blink(100); // causes a 100ms blink interval.
它也是一个非常简单的插件,您可以扩展它以停止动画并按需启动它。
答案 2 :(得分:36)
这里有动画闪烁:
$(".blink").animate({opacity:0},200,"linear",function(){
$(this).animate({opacity:1},200);
});
只要给你一个眨眼课,不管你想要眨眼:
<div class="someclass blink">some text</div>
所有关于#jquery
的DannyZB问候特点:
答案 3 :(得分:12)
如果您不想使用jQuery,可以使用CSS3
来实现@-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中工作,虽然我觉得我听到了轻微的抽泣声。
答案 4 :(得分:9)
结合上面的代码,我认为这是一个很好的解决方案。
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
答案 5 :(得分:8)
这是我的;它可以控制重要的3个参数:
setInterval(function() {
$('.blink').fadeIn(300).fadeOut(500);
}, 1000);
答案 6 :(得分:5)
你也可以试试这些:
<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>
答案 7 :(得分:5)
你也可以使用标准的CSS方式(不需要JQuery插件,但与所有浏览器兼容):
// Start blinking
$(".myblink").css("text-decoration", "blink");
// Stop blinking
$(".myblink").css("text-decoration", "none");
答案 8 :(得分:5)
这是 EASIEST 方式(编码最少):
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);
答案 9 :(得分:4)
$.fn.blink = function(times, duration) {
times = times || 2;
while (times--) {
this.fadeTo(duration, 0).fadeTo(duration, 1);
}
return this;
};
答案 10 :(得分:3)
在这里,您可以找到jQuery blink插件及其快速demo。
基本闪烁(无限制闪烁,闪烁时间~1秒):
$('selector').blink();
在更高级的用法上,您可以覆盖任何设置:
$('selector').blink({
maxBlinks: 60,
blinkPeriod: 1000, // in milliseconds
onBlink: function(){},
onMaxBlinks: function(){}
});
在那里,您可以指定最大闪烁次数,也可以访问几个回调:onBlink
和onMaxBlinks
非常自我解释。
适用于IE 7&amp; 8,Chrome,Firefox,Safari以及可能在IE 6和Opera中(尽管尚未对它们进行测试)。
(完全披露:我是前一个的创造者。我们有合法的需要在工作中使用它[我知道我们都喜欢这样说: - )]系统内的警报,我想分享仅用于合法需要;-))。
以下是jQuery blink plugins的另一个列表。
答案 11 :(得分:3)
这段代码对我有用
$(document).ready(function () {
setInterval(function(){
$(".blink").fadeOut(function () {
$(this).fadeIn();
});
} ,100)
});
答案 12 :(得分:2)
您可以尝试使用jQuery UI Pulsate效果:
答案 13 :(得分:1)
$(".myblink").css("text-decoration", "blink");
不适用于IE 7&amp;苹果浏览器。适用于Firefox
答案 14 :(得分:1)
我认为以下内容比其他答案更清晰,更具定制性。
var element_to_blink=$('#id_of_element_to_blink');
var min_opacity=0.2;
var max_opacity=1.0;
var blink_duration=2000;
var blink_quantity=10;
var current_blink_number=0;
while(current_blink_number<blink_quantity){
element_to_blink.animate({opacity:min_opacity},(blink_duration/2),"linear");
element_to_blink.animate({opacity:max_opacity},(blink_duration/2),"linear");
current_blink_number+=1;
}
答案 15 :(得分:1)
此独立解决方案将使文本闪烁指定的次数,然后停止。
闪烁使用不透明度,而不是显示/隐藏,淡入淡出或切换,以便DIV保持可点击状态,以防出现问题(允许您使用闪烁文本制作按钮)。
jsFiddle here(包含其他评论)
<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 init = 0;
$('#clignotant').click(function() {
if (init==0) {
init++;
blink(this, 800, 4);
}else{
alert('Not document.load, so process the click event');
}
});
function blink(selector, blink_speed, iterations, counter){
counter = counter | 0;
$(selector).animate({opacity:0}, 50, "linear", function(){
$(this).delay(blink_speed);
$(this).animate({opacity:1}, 50, function(){
counter++;
if (iterations == -1) {
blink(this, blink_speed, iterations, counter);
}else if (counter >= iterations) {
return false;
}else{
blink(this, blink_speed, iterations, counter);
}
});
$(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;text-align:center;">
<br>
Usage: blink(selector, blink_speed, iterations) <br />
<span style="font-weight:bold;color:blue;">if iterations == -1 blink forever</span><br />
Note: fn call intentionally missing 4th param
</div>
</body>
</html>
答案 16 :(得分:1)
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<div id="msg"> <strong><font color="red">Awesome Gallery By Anil Labs</font></strong></p> </div>
<script type="text/javascript" >
function blink(selector){
$(selector).fadeOut('slow', function(){
$(this).fadeIn('slow', function(){
blink(this);
});
});
}
blink('#msg');
</script>
答案 17 :(得分:1)
我打算发布steps
- 定时的polyfill,但后来我记得我真的不想看到这种效果,所以......
function blink(element, interval) {
var visible = true;
setInterval(function() {
visible = !visible;
element.style.visibility = visible ? "visible" : "hidden";
}, interval || 1000);
}
答案 18 :(得分:0)
查看此问题的观看次数,以及缺少涵盖眨眼和停止的答案,请按下:jQuery.blinker demo}。
<强> HTML:强>
<p>Hello there!</p>
<强> JavaScript的:强>
var p = $("p");
p.blinker();
p.bind({
// pause blinking on mouseenter
mouseenter: function(){
$(this).data("blinker").pause();
},
// resume blinking on mouseleave
mouseleave: function(){
$(this).data("blinker").blinkagain();
}
});
答案 19 :(得分:0)
尝试一下:
setInterval( function() { $(".me").fadeOut(500).fadeIn(500) } , 500);
答案 20 :(得分:0)
$('.blink').fadeIn('fast')
.animate({
color: "#FFCD56"
}, 100).animate({
color: "white"
}, 100)
.animate({
color: "#FFCD56"
}, 100).animate({
color: "white"
}, 100)
.animate({
color: "#FFCD56"
}, 100).animate({
color: "white"
}, 100)
.animate({
color: "#FFCD56"
}, 100).animate({
color: "white"
}, 100)
.animate({
color: "#FFCD56"
}, 100).animate({
color: "white"
}, 100);
答案 21 :(得分:0)
此代码将有效地使元素闪烁而不触及布局(如fadeIn().fadeOut()
将会这样做)只需对不透明度进行操作;你去,眨眼文字;可用于良好的and evil:)
setInterval(function() {
$('.blink').animate({ opacity: 1 }, 400).animate({ opacity: 0 }, 600);
}, 800);
答案 22 :(得分:0)
最简单的方法:
$(".element").fadeTo(250, 0).fadeTo(250,1).fadeTo(250,0).fadeTo(250,1);
您可以根据需要重复此操作,也可以在循环中使用它。 fadeTo()的第一个参数是淡入淡出生效的持续时间,第二个参数是不透明度。
答案 23 :(得分:0)
文本按钮单击时开始和停止闪烁 -
<input type="button" id="btnclick" value="click" />
var intervalA;
var intervalB;
$(document).ready(function () {
$('#btnclick').click(function () {
blinkFont();
setTimeout(function () {
clearInterval(intervalA);
clearInterval(intervalB);
}, 5000);
});
});
function blinkFont() {
document.getElementById("blink").style.color = "red"
document.getElementById("blink").style.background = "black"
intervalA = setTimeout("blinkFont()", 500);
}
function setblinkFont() {
document.getElementById("blink").style.color = "black"
document.getElementById("blink").style.background = "red"
intervalB = setTimeout("blinkFont()", 500);
}
</script>
<div id="blink" class="live-chat">
<span>This is blinking text and background</span>
</div>
答案 24 :(得分:0)
我为文本闪烁写了一个简单的jquery扩展,同时指定它应该使文本闪烁的次数,希望它能帮助其他人。
//add Blink function to jquery
jQuery.fn.extend({
Blink: function (i) {
var c = i; if (i===-1 || c-- > 0) $(this).fadeTo("slow", 0.1, function () { $(this).fadeTo("slow", 1, function () { $(this).Blink(c); }); });
}
});
//Use it like this
$(".mytext").Blink(2); //Where 2 denotes number of time it should blink.
//For continuous blink use -1
$(".mytext").Blink(-1);
答案 25 :(得分:0)
这最终最适合我。我使用jQuery fadeTo因为这是在WordPress上,它已经链接了jQuery。否则,我可能会在为插件添加另一个http请求之前选择使用纯JavaScript。
$(document).ready(function() {
// One "blink" takes 1.5s
setInterval(function(){
// Immediately fade to opacity: 0 in 0ms
$(".cursor").fadeTo( 0, 0);
// Wait .75sec then fade to opacity: 1 in 0ms
setTimeout(function(){
$(".cursor").fadeTo( 0, 1);
}, 750);
}, 1500);
});
答案 26 :(得分:0)
Blink功能可以通过普通的javascript实现,不需要jquery插件甚至jquery。
这适用于所有浏览器,因为它使用的是基本功能
这是代码
HTML:
<p id="blinkThis">This will blink</p>
JS代码:
var ele = document.getElementById('blinkThis');
setInterval(function () {
ele.style.display = (ele.style.display == 'block' ? 'none' : 'block');
}, 500);
答案 27 :(得分:0)
确实,一个简单的眨眼效果插件就是矫枉过正。所以在尝试了各种解决方案之后,我选择了一行javascript和一个CSS类,它控制着我想要闪烁的元素(在我的情况下,为了工作眨眼我只需要将背景更改为透明,这样文字仍然可见):
JS:
$(document).ready(function () {
setInterval(function () { $(".blink").toggleClass("no-bg"); }, 1000);
});
CSS:
span.no-bg {
background-color: transparent;
}
此js fiddle的完整示例。
答案 28 :(得分:0)
我喜欢亚历克斯的答案,所以这是一个没有间隔的延伸(因为你需要最终清除那个间隔,并知道你什么时候想要按钮停止闪烁。这是你传入的解决方案jquery元素,闪烁偏移所需的ms以及元素闪烁的次数:
function blink ($element, ms, times) {
for (var i = 0; i < times; i++) {
window.setTimeout(function () {
if ($element.is(':visible')) {
$element.hide();
} else {
$element.show();
}
}, ms * (times + 1));
}
}
答案 29 :(得分:0)
其中一些答案非常复杂,这有点容易:
$.fn.blink = function(time) {
var time = typeof time == 'undefined' ? 200 : time;
this.hide(0).delay(time).show(0);
}
$('#msg').blink();
答案 30 :(得分:0)
此代码可能对此主题有所帮助。简单但有用。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
setInterval("$('#myID/.myClass').toggle();",500);
});
</script>
答案 31 :(得分:0)
闪烁!
var counter = 5; // Blinking the link 5 times
var $help = $('div.help');
var blinkHelp = function() {
($help.is(':visible') ? $help.fadeOut(250) : $help.fadeIn(250));
counter--;
if (counter >= 0) setTimeout(blinkHelp, 500);
};
blinkHelp();
答案 32 :(得分:-1)
还有一个来自核心jQuery功能(可能更好):
function blink( el ) {
if (!el) {
el = this
}
$(el).animate( { opacity: 0.5 },1200, function() {
$(this).animate( {opacity: 1 }, 1200, blink );
} );
}
您可以调整动画不透明度变化(0.5-1)和延迟(1200)以获得更好的“闪烁”。这个比90es的眨眼更不烦人: - )
答案 33 :(得分:-1)
基于亚历克斯的想法
$('#selector').blink();
$.fn.blink = function(options) {
options = $.extend({}, {'speed' : 800}, options);
var elem = this;
setInterval(function() {
if (!elem.is(':visible')) {
elem.show();
} else {
elem.hide();
}
}, options.speed);
}
答案 34 :(得分:-1)
$.fn.blink = function (delay) {
delay = delay || 500;
return this.each(function () {
var element = $(this);
var interval = setInterval(function () {
element.fadeOut((delay / 3), function() {
element.fadeIn(delay / 3);
})
}, delay);
element.data('blinkInterval', interval);
});
};
$.fn.stopBlinking = function() {
return this.each(function() {
var element = $(this);
element.stop(true, true);
clearInterval(element.data('blinkInterval'));
});
};