繁体   English   中英

几秒钟后如何使此Jquery闪烁后台停止?

[英]How to make this Jquery-blinking background stop after a few seconds?

几秒钟后如何使此Jquery闪烁后台停止? 我试图将背景和文字设置为闪烁,然后在3秒后停止。 谢谢您的帮助!

 $(document).ready(function() { blinkFont(); }); function blinkFont() { document.getElementById("blink").style.color = "red" document.getElementById("blink").style.background = "black" setTimeout("setblinkFont()", 500) } function setblinkFont() { document.getElementById("blink").style.color = "black" document.getElementById("blink").style.background = "red" setTimeout("blinkFont()", 500) } 
 #blink { text-align: center; background: #000000; color: #F00; margin: 0; padding: 20px; } #blink span { font-size: 2em; font-weight: bold; display: block; } 
 <div id="blink"><span>This is blinking text and background</span> </div> 

虽然我可以想到一些更优雅的方法来完成此操作,而无需过多更改当前结构,但是可以将Timeouts存储在变量中,然后使用clearInterval ,它会停止计时器,并在三秒钟后停止重复发生:

<script>
var intervalA;
var intervalB;

$(document).ready(function() {

  blinkFont();
  setTimeout(function() {

      clearInterval(intervalA); clearInterval(intervalB);},3000);
});

function blinkFont() {
  document.getElementById("blink").style.color = "red"
  document.getElementById("blink").style.background = "black"
  intervalA = setTimeout("setblinkFont()", 500);
}

function setblinkFont() {
  document.getElementById("blink").style.color = "black"
  document.getElementById("blink").style.background = "red"
  intervalB = setTimeout("blinkFont()", 500);
}

</script>
</head>

<body>
<div id="blink"><span>This is blinking text and background</span>
</div>
</body>

您必须使用SetTimeout()SetInterval()clearInterval()如下代码。

点击这里查看工作演示

HTML

<div id="blink"><span>Demo</span>
</div>

jQuery的

    $(document).ready(function(){
        var myVar;
        myVar = setInterval(blinkFont, 500); 

        function blinkFont() {
    var curColor = document.getElementById("blink").style.color;
    var curBgC = document.getElementById("blink").style.background;
    document.getElementById("blink").style.color = curColor === "red" ? "blue" : "red";
    document.getElementById("blink").style.background = curBgC === "black" ? "yellow" : "black";

}
        setTimeout(function () {
                         $("#blink").css('visibility', 'visible');
            clearInterval(myVar);        
                    }, 3000); // after 3 seconds it'll stop blinking
    });

这是工作中的JsFiddle-单击此处

不用SetTimeout而是使用SetInterval,将变量随身携带。 并保持一个计数器,一旦达到所需的重复次数stopinterval,该计数器将在每次执行后递增。 像这样:

 myVar=setInterval("javascript function", milliseconds);

//check your counter value.
 window.clearInterval(myVar)

这个小提琴让您满意吗?

代码:

$(document).ready(function() {

  var intval;
    intval = setInterval(function(){
       blinkFont(); 
    },500);

    setTimeout(function() {

          alert('clear');
            clearInterval(intval);
    }, 3000);



});

function blinkFont() {
    var curColor = document.getElementById("blink").style.color;
    var curBgC = document.getElementById("blink").style.background;
    document.getElementById("blink").style.color = curColor === "red" ? "blue" : "red";
    document.getElementById("blink").style.background = curBgC === "black" ? "yellow" : "black";

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM