suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – So deaktivieren Sie den JS-Effekt neu geöffneter Fenster in JS

Ich habe einen Fensterrütteleffekt erstellt, aber das neu geöffnete Fenster hat einen Rütteleffekt, aber ich weiß nicht, wie ich den Effekt löschen und schließen kann, nachdem ich den Effekt gelöscht habe ...

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>窗口抖动</title>
</head>
<body>
<script>
    var w=window.open('','', 'width=100,height=100');
    w.resizeTo(300,300);
    var loop;
    var timer;
    var offX;
    var offY;
    var status = 1;
    timer = setInterval(function(){
        w.moveTo(100,100);
        if(loop<10){
            clearInterval(timer);
        }
        status = Math.random()*10 > 5 ? 1 : -1;
        offX = Math.random()*20*status;
        offY = Math.random()*20*status*-1;
        w.moveBy(offX,offY);
        loop++;
    },10);
</script>
</body>
</html>
漂亮男人漂亮男人2748 Tage vor587

Antworte allen(4)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-18 10:59:11

    var w=window.open('','', 'width=100,height=100');
    w.resizeTo(300,300);
    var loop = 0;  // 设置默认值
    var timer;
    var offX;
    var offY;
    var status = 1;
    timer = setInterval(function(){
        w.moveTo(100,100);
        // 设为大于
        if(loop > 10){
            clearInterval(timer);
        }
        status = Math.random()*10 > 5 ? 1 : -1;
        offX = Math.random()*20*status;
        offY = Math.random()*20*status*-1;
        w.moveBy(offX,offY);
        loop++;
    },10);
    w.close() // 关闭窗口

    Antwort
    0
  • 高洛峰

    高洛峰2017-05-18 10:59:11

    setTimeout(function () {
      clearInterval(timer);
    },1000);
    setTimeout(function () {
      w.close();
    },2000)

    Antwort
    0
  • 黄舟

    黄舟2017-05-18 10:59:11

    if(loop>10){
          clearInterval(timer);
    }

    这里应该是loop大于10,你写错了吧。还有声明loop的时候给个初始值零。

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-18 10:59:11

    清楚定时器,然后执行一个方法关闭窗口

    Antwort
    0
  • StornierenAntwort