窗口移动功能

时间:2019-04-14 20:29:30

标签: javascript html

我正在尝试在设置的计时器上将窗口移动特定数量的像素。 现在,我的startWindow函数(包含移动窗口函数)包含一个计时器,该计时器应每0.35秒移动一次窗口。但是由于某种原因,我无法弄清楚它是否起作用。顺便说一下,这是一项家庭作业,因此,如果可能的话,请不要给我完整的答案,请提供建议。这是我遇到的代码:

    <head>
        <script>
            var aWindow;
            var current = 0;
            function openWindow() {
                aWindow = window.open("", "", "width=400, height = 200");
                aWindow.document.write("This is my new Window");
            }

            function closeWindow(){
                if(aWindow) {
                    aWindow.close();
                }
            }

            var moveWindow = function windowMove() {
                    if (aWindow) {
                    aWindow.moveTo(100, 0);
                    aWindow.moveTo(200, 0);
                    aWindow.moveTo(300, 0);
                    aWindow.moveTo(400, 0);
                    aWindow.moveTo(500, 0);
                    aWindow.moveTo(600, 0);
                    aWindow.moveTo(700, 0);
                    aWindow.moveTo(800, 0);
                    aWindow.moveTo(900, 0);
                    aWindow.moveTo(1000, 0);
                    aWindow.moveTo(1000, 100);
                    aWindow.moveTo(1000,  200);
                    aWindow.moveTo(1000,  300);
                    aWindow.moveTo(1000,  400);
                    aWindow.moveTo(1000,  500);
                    aWindow.moveTo(1000, 600);
                    aWindow.moveTo(1000, 700);
                    aWindow.moveTo(1000, 800);
                    aWindow.moveTo(1000, 900);
                    aWindow.moveTo(1000, 1000);
                    aWindow.moveTo(900, 1000);
                    aWindow.moveTo(800, 1000);
                    aWindow.moveTo(700, 1000);
                    aWindow.moveTo(600, 1000);
                    aWindow.moveTo(500, 1000);
                    aWindow.moveTo(400, 1000);
                    aWindow.moveTo(300, 1000);
                    aWindow.moveTo(200, 1000);
                    aWindow.moveTo(100, 1000);
                    aWindow.moveTo(0, 1000);
                    aWindow.moveTo(0, 900);
                    aWindow.moveTo(0, 800);
                    aWindow.moveTo(0, 700);
                    aWindow.moveTo(0, 600);
                    aWindow.moveTo(0, 500);
                    aWindow.moveTo(0, 400);
                    aWindow.moveTo(0, 300);
                    aWindow.moveTo(0, 200);
                    aWindow.moveTo(0, 100);
                    aWindow.moveTo(0, 0);

                }
                function startWindow(){
                    if (timer){ 
                        timer = setInterval(moveWindow(), 350);
                    }
                }
                function stopWindow() {
                clearInterval(timer);
                }
            }

</script>
</head>
        </script>
    </head>
    <body>
        <button onclick="openWindow();">Open</button>
        <button onclick="closeWindow();">Close</button>
        <button onclick="startWindow();">Move</button>
        <button onclick="stopWindow();">Stop</button>


    </body>
</html>

1 个答案:

答案 0 :(得分:1)

好的,这里有一些建议:

为了在函数调用之间创建时间延迟,可以使用await或使用setIntervalsetTimeout

在链接中可以找到基本示例,以便您了解每个示例的工作原理,但是我想await将解决您的问题。

如果您想坚持使用setInterval方法,则可以使用值创建一个数组并调用一个更新函数,该函数将增加索引并调用该数组上的每个值。

我真的建议使用eventListeners而不是内联事件。

相关问题