Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript while loop使浏览器保持忙碌状态_Javascript - Fatal编程技术网

Javascript while loop使浏览器保持忙碌状态

Javascript while loop使浏览器保持忙碌状态,javascript,Javascript,如何运行while循环而不让浏览器变得“太忙” 我有一个脚本,我需要无限运行: do { $("#announcement").css( "text-shadow", "1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue" ); setTimeout(function () { $("#announcement").css( "text-shadow", "1px 1px 3px whi

如何运行while循环而不让浏览器变得“太忙”

我有一个脚本,我需要无限运行:

do {
  $("#announcement").css(
    "text-shadow",
    "1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue"
  );
  setTimeout(function () {
    $("#announcement").css(
      "text-shadow",
      "1px 1px 3px white, 0 0 25px blue, 0 0 5px darkblue"
    );
  }, 1000);
} while (true);
但是浏览器被卡住了。。。人们如何使用在浏览器中运行的while循环

更新:

在大家的帮助下,我构建了这个:

let color = 'black';
$('#announcement').css('text-shadow', '1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue');

setInterval(() => {
    if (color === 'black') {
         $('#announcement').css('text-shadow', '1px 1px 3px white, 0 0 25px blue, 0 0 5px darkblue');
         color = 'white';
    } else {
         $('#announcement').css('text-shadow', '1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue');
         color = 'black';
        }
      }, {1000});  // <--
let color='black';
.css('text-shadow','1px 1px 1px黑色,0 0 25 px蓝色,0 0 5 px深蓝色');
设置间隔(()=>{
如果(颜色==‘黑色’){
.css('text-shadow','1px 1px 3px白色,0 0 25 px蓝色,0 0 5 px深蓝色');
颜色=白色;
}否则{
.css('text-shadow','1px 1px 1px黑色,0 0 25 px蓝色,0 0 5 px深蓝色');
颜色='黑色';
}
}, {1000});  //  你不能

如果您想在每个时段的两个值之间切换,请使用
setInterval
而不是循环。

您不能


如果要在每个时间段的两个值之间切换,请使用
setInterval
而不是循环。

您可以使用
setInterval
而不是循环。请注意,根据您的需要在答案中添加以毫秒为单位的时间

setInterval(() => {
        $('#announcement').css('text-shadow','1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue');
        setTimeout(function()
        { $('#announcement').css('text-shadow', '1px 1px 3px white, 0 0 25px blue, 0 0 5px darkblue'); },1000);
      },1000)

您可以使用
setInterval
代替循环。请注意,根据您的需要在答案中添加以毫秒为单位的时间

setInterval(() => {
        $('#announcement').css('text-shadow','1px 1px 1px black, 0 0 25px blue, 0 0 5px darkblue');
        setTimeout(function()
        { $('#announcement').css('text-shadow', '1px 1px 3px white, 0 0 25px blue, 0 0 5px darkblue'); },1000);
      },1000)

如果我得到了你想要做的,你可以不用javascript,你的脚本有一个糟糕的做法,因为它是一个无限循环,如果你想在这里找到如何使用

#公告{
动画:动画1s交替无限
}
@关键帧动画{
0%, 100% {
文本阴影:1px 1px 1px黑色,0 0 25px蓝色,0 0 5px深蓝色;
}
50% {
文本阴影:1px 1px 3px白色,0 0 25px蓝色,0 0 5px深蓝色;
}
}

设置这个元素的动画
如果我得到了你想要做的事情,你可以不用javascript来做,你的脚本有一个不好的习惯,因为它是一个无限循环,如果你正在寻找如何使用

#公告{
动画:动画1s交替无限
}
@关键帧动画{
0%, 100% {
文本阴影:1px 1px 1px黑色,0 0 25px蓝色,0 0 5px深蓝色;
}
50% {
文本阴影:1px 1px 3px白色,0 0 25px蓝色,0 0 5px深蓝色;
}
}

为该元素设置动画
不需要花括号。在收到我的答案后写1000就行了。{}指示要放置的值完美!成功了!不需要花括号。在收到我的答案后写1000就行了。{}指示要放置的值完美!成功了!我也要试试这个。我喜欢它使用CSS而不是其他任何东西。@mr_难以置信,是的,它很简单,而且是开箱即用的!:)人们常常忘记,仅仅使用CSS就可以做很多事情。这么多的技巧和转变。成为CSS大师不是一个坏决定。我也要试试这个。我喜欢它使用CSS而不是其他任何东西。@mr_难以置信,是的,它很简单,而且是开箱即用的!:)人们常常忘记,仅仅使用CSS就可以做很多事情。这么多的技巧和转变。成为CSS大师不是一个坏决定。