簡體   English   中英

為什么我的文字不閃爍?

[英]Why my text does not blink?

我想使用javascript使我的文本閃爍但是......沒有

var blocus = document.getElementById('blocus');
var cas = 1;

function changer() {
    if (cas == 1) {
        blocus.style.color = "rgb(58, 83, 155)";
        cas = 2;
    }
    if (cas == 2) {
        blocus.style.color = "rgb(154, 18, 179)";
        cas = 1;
    }
}

setInterval(changer, 100);

我不明白為什么我的文字沒有閃爍無限。 請幫我。 我希望我的文字從一種顏色閃爍到另一種顏色,並且交替,無限......

你需要使用if (...) {...} else if (...) {...}模式而不是2 if blocks。

例如,當前在您的代碼中,如果cas === 1

  1. 第一個if塊將cas更改為2
  2. 第二個if的條件是cus === 2; // true cus === 2; // true
  3. 調用進入第二個if
  4. 第二個if塊會覆蓋第一個塊所做的更改

因此,您的顏色沒有明顯變化。

if (cas === 1) {
    blocus.style.color = "rgb(58, 83, 155)";
    cas = 2;
} else if (cas === 2) {
    blocus.style.color = "rgb(154, 18, 179)";
    cas = 1;
}

 var blocus = document.getElementById('blocus'); var cas = 1; function changer() { if (cas === 1) { blocus.style.color = "rgb(58, 83, 155)"; cas = 2; } else if (cas === 2) { blocus.style.color = "rgb(154, 18, 179)"; cas = 1; } } setInterval(changer, 100); 
 div { height: 50px; font-size: 50px; } 
 <div id="blocus"> hello </div> 

DEMO

你能做到的

 var blocus = document.getElementById('blocus'); var cas = false; function changer() { cas = !cas; if (cas) { blocus.style.color = "rgb(58, 83, 155)"; }else{ blocus.style.color = "rgb(154, 18, 179)"; } } setInterval(changer, 100); 

像這樣更改你的代碼(添加else if語句)。 否則第二個if將永遠為真。

function changer() {
    if (cas == 1) {
        blocus.style.color = "rgb(58, 83, 155)";
        cas = 2;
    } else if (cas == 2) {
        blocus.style.color = "rgb(154, 18, 179)";
        cas = 1;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM