为什么我的文字不闪烁?

时间:2016-04-03 13:30:34

标签: javascript

我想使用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);

我不明白为什么我的文字没有闪烁无限。请帮我。 我希望我的文字从一种颜色闪烁到另一种颜色,并且交替,无限......

3 个答案:

答案 0 :(得分:3)

您需要使用if (...) {...} else if (...) {...}模式而不是2 if个模块。

例如,目前在您的代码中cas === 1然后

  1. 第一个if数据块将cas更改为2
  2. 第二个if的条件是cus === 2; // true
  3. 调用进入第二个if
  4. 第二个if块会覆盖第一个块所做的更改
  5. 因此,您的颜色没有明显变化。

    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>
    &#13;
    &#13;
    &#13;

    DEMO

答案 1 :(得分:0)

你可以做到

&#13;
&#13;
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);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

像这样更改代码(添加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;
    }
}