欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

嘗試使用setTimeout和類似的函數在函數發生時生成

錢琪琛2年前9瀏覽0評論

我是一個非常新的JavaScript用戶,我正在為我的網站重新創建一些東西,我希望它每隔幾秒鐘就有一次閃光/發光效果,閃光只出現一定的時間。

以下是我的嘗試:

let glow = true;

function flash() {
    glow = !glow;
  if(glow) {
    document.querySelector("#logo").style.textShadow = "-2px -2px 0.1em #fff, -2px -2px 0.1em #fff, 2px 2px 0.1em #fff, -2px -2px 0.3em #fff, 2px 2px 0.5em #fff";
  }
  else{
  document.querySelector("#logo").style.textShadow = "0 0 0";
  }
 } 
 
(function loop() {
    var rand = Math.round(Math.random() * (7000 - 4000)) + 4000; // supposed to be how often the flashes occur, from 7s to 4s
    var glow = setInterval(flash, 700); // supposed to be max time the flash can stay on screen
    setTimeout(function() {
            flash();
            loop();  
    }, rand);
}());

我留下了詳細描述我的想法的評論。感謝任何幫助,我昨天剛開始寫JavaScript,主要是寫了從其他來源獲得幫助,如果很難閱讀,很抱歉!

你不斷地創建設置間隔,卻從未擺脫它們,所以flash一直顯示,顯示,顯示(隨著時間的推移,它會變得越來越多,如果你離開它足夠長的時間,系統可能會耗盡資源!).

如果你確實想在那個隨機的時間間隔內閃爍不止一次,那么在開始下一次之前,保存setInterval并刪除它。

然而,我知道你每次都想要一個7s的flash,所以用setTimeout代替,因為這只會發生一次。

<style>
  body {
    background: blue;
  }
</style>
<div id="logo">HELLO</div>
<script>
  let glow = true;

  function flash() {
    glow = !glow;
    if (glow) {
      document.querySelector("#logo").style.textShadow = "-2px -2px 0.1em #fff, -2px -2px 0.1em #fff, 2px 2px 0.1em #fff, -2px -2px 0.3em #fff, 2px 2px 0.5em #fff";
    } else {
      document.querySelector("#logo").style.textShadow = "0 0 0";
    }
  }

  (function loop() {
    var rand = Math.round(Math.random() * (7000 - 4000)) + 4000; // supposed to be how often the flashes occur, from 7s to 4s
    var glow = setTimeout(flash, 700); // supposed to be max time the flash can stay on screen
    setTimeout(function() {
      flash();
      loop();
    }, rand);
  }());
</script>

你為此寫了很多。只需使用類似下面的例子:

document.addEventListener('DOMContentLoaded',()=>{
  function glow(){
    document.getElementById('box').classList.toggle('glow')
  }
  setInterval(glow,3000)
})

#box{
  margin: 2rem;
  width: 8rem;
  height:8rem;
  text-align:center;
  line-height:8rem;
  background: #f2f2f2;
  transition: .5s ease;
  font-size: 3rem;
  font-weight: 700;
}
.glow{
  text-shadow: 0 0 10px #00ff00
}

<div id="box">Hello</div>

您的代碼看起來基本上是正確的,但是您需要做一些調整來獲得想要的閃光/發光效果。下面是修改后的代碼,并附有解釋:

let glow = true;

function flash() {
  glow = !glow;
  if (glow) {
    document.querySelector("#logo").style.textShadow = "-2px -2px 0.1em #fff, -2px -2px 0.1em #fff, 2px 2px 0.1em #fff, -2px -2px 0.3em #fff, 2px 2px 0.5em #fff";
  } else {
    document.querySelector("#logo").style.textShadow = "0 0 0";
  }
}

(function loop() {
  var rand = Math.round(Math.random() * (7000 - 4000)) + 4000; // Random time between 4 and 7 seconds

  flash(); // Trigger the initial flash immediately

  setTimeout(function() {
    setInterval(flash, 700); // Start the flashing at an interval of 700ms
  }, rand);
})();

<h4 id="logo">Hi!</h4>