我有以下问题我有 21 张小图片,我希望它们以定义的时间间隔随机放置在窗口中。
我有下面的代码,我知道是什么导致了问题,但是我无法解决。
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(Prep6);
addLoadEvent(Prep7);
function Prep6() {
window_Height = window.innerHeight;
window_Width = window.innerWidth;
image_Element = document.getElementById("loader06");
image_Height = image_Element.clientHeight;
image_Width = image_Element.clientWidth;
availSpace_V = window_Height - image_Height;
availSpace_H = window_Width - image_Width;
moveImage7();
var changeInterval = 300;
setInterval(moveImage7, changeInterval);
}
function moveImage6() {
var randNum_V = Math.round(Math.random() * availSpace_V);
var randNum_H = Math.round(Math.random() * availSpace_H);
image_Element.style.top = randNum_V + "px";
image_Element.style.left = randNum_H + "px";
}
function Prep7() {
window_Height = window.innerHeight;
window_Width = window.innerWidth;
image_Element = document.getElementById("loader07");
image_Height = image_Element.clientHeight;
image_Width = image_Element.clientWidth;
availSpace_V = window_Height7 - image_Height;
availSpace_H = window_Width - image_Width;
moveImage7();
var changeInterval = 300;
setInterval(moveImage7, changeInterval);
}
function moveImage7() {
var randNum_V = Math.round(Math.random() * availSpace_V);
var randNum_H = Math.round(Math.random() * availSpace_H);
image_Element.style.top = randNum_V + "px";
image_Element.style.left = randNum_H + "px";
}
问题是:
moveImage7();
function moveImage6()
我该如何解决?
最佳答案
我相信您遇到了一些范围问题。换句话说,您的 moveImage6() 和 moveImage7() 函数中使用的变量是看不到的,因为它们对于您的其他函数是本地的。要解决此问题,您必须将这些变量传递给您的 moveImage 函数。您的 moveImage 函数通过 setInterval 函数定期调用,因此按如下方式传递参数:
setInterval(function(){
moveImage6(availSpace_V, availSpace_H, image_Element);
}, changeInterval);
这还需要您更新 moveImage6() 和 moveImage7() 函数以接受这些参数。
Passing parameters with setInterval
jsfiddle: simplified in action
希望这对您有所帮助!
PS:你可能想把prep7()中的window_Height7改成window_Height
关于Javascript - 随机图像错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140358/