我正在設計一個在後臺移動雲的網頁。我的代碼使用jQuery,看起來像這樣。同時setIntervals - 只有第一個正在運行
browserWidth = 0;
browserHeight = 0;
clouds = 4;
cloudSpeed = 50;
$(function() {
browserWidth = $(window).width();
browserHeight = $(window).height();
for(i = 0; i < clouds; i++) {
createCloud(cloudSpeed);
}
});
function moveCloud(cloud) {
offset = cloud.offset();
posX = offset.left;
posX--;
if(posX < -250) {
posX = browserWidth;
}
cloud.offset({
left: posX
});
}
function createCloud(speed) {
posY = Math.floor(Math.random() * (browserHeight/2.5));
posX = Math.floor(Math.random() * (browserWidth - 255));
cloud = $("<div></div>").addClass("cloud").appendTo("body").offset({
top: posY,
left: posX
});
setInterval(function() {
moveCloud(cloud);
}, speed);
}
基本上它使用createCloud
函數創建四肢雲(與背景圖象的div),該初始化div和設置使用setInterval
的間隔。在間隔函數中,我調用函數moveCloud
,將div移動一個像素。請參閱上面的代碼。
我的問題是,它只移動其中一個div。我讀過,應該可以同時使用多個間隔。
代碼有什麼問題?
也儘量'someArr [someArr.length] = setInterval的...'如果someArr = []在全球範圍內 – mplungjan 2013-04-05 17:45:45
你真的應該看看動畫的方法 – 2013-04-05 17:47:34
@roasted我所知道的在jQuery中生成動畫,但對於這種情況並不理想。使用動畫時,您需要指定時間。我可以做一些技巧,但這似乎更容易一些。 – MikkoP 2013-04-05 18:41:00