我有一个非常奇怪的具体项目,需要在多个窗口弹出窗口中打开一些照片。(我理解这个的可用性,请暂时忽略它。)
我在body load上运行下面的脚本,到目前为止,它工作得 * 有些 *:
// Popup window code
function runPopups() {
popupWin1 = setInterval(
function() {
window.open('assets/pic1.jpg', '_blank', 'width=490,height=300,left=-1000,top=-1000')
}, 3000);
//clearInterval(popupWin1);
popupWin2 = setInterval(
function() {
window.open('assets/pic2.jpg', '_blank', 'width=600,height=500,left=0,top=0')
}, 3000);
//clearInterval(popupWin2);
}
它实际上似乎只是加载了一次,然后不断地循环回去。当我添加clearInterval
参数时,它完全破坏了脚本。我已经很接近了,但不确定我做错了什么,因为javascript不是我的主要理解。我觉得我要么不知何故错过了一个循环,要么我需要把它放在一个完全不同的函数中?
理想情况下,我希望每张照片弹出在屏幕上的一个随机点,与不同的延迟时间奖金,如果每一个可以越来越快。我将有大约10-20张照片弹出。帮助是非常感谢!
3条答案
按热度按时间qhhrdooz1#
你想用一个for循环和
setTimeout
来单独调度每个弹出窗口,如果每个弹出窗口有不同的名称和参数,你可以把它存储在一个数组中,然后用一个for循环来遍历它。示例:https://stackblitz.com/edit/typescript-2rgp5n?file=index.ts
您计划第一个在3秒后弹出,第二个在6秒后弹出,第三个在9秒后弹出,等等。如果您希望第一个立即出现,只需删除
+ 1
。lrl1mhuk2#
试试这个
cngwdvgl3#
使用setTimeout而不是setInterval,因为setInterval意味着每3秒打开一次弹出窗口,这就是它反复打开的原因