我一直在瀏覽很多類似的問題,而沒有得到我所需要的東西。用JavaScript添加「延遲」功能
我有一些代碼,每次發生window.onresize事件時執行。但是代碼很困難,通常在短時間內有很多.onresize事件,並且坦白地說,需要執行的代碼只能運行一次。
所以我想要的是一些代碼等待一段時間,而resize事件繼續,然後觸發一次(直到觸發新的調整大小事件)。
我已經嘗試了setInterval和setTimeout,但我發現這些方法只是等待我指定的時間量,然後運行代碼的次數與窗口調整大小的次數完全一樣(每隔幾個像素一次窗口被調整大小)。一遍又一遍地重複相同的代碼會將瀏覽器鎖定3-4秒,所以我想在調整大小的時候鎖定瀏覽器並執行代碼會更好。
正在執行的代碼確保顯示在屏幕上的內容顯示在它所屬的位置。它有很多樣式,非常類似於CSS,但是相對於內部窗口大小,JavaScript動態地完成。
Plz,沒有jQuery解決方案。
我希望我已經足夠具體,並且我能理解你的回覆。我只從事編程業務3個月,而且我沒有接受過真正的教育,所以我只知道到目前爲止,什麼樣的人生教育我。因此,請詳細解釋您如何建議您的代碼應該被使用。
這是一個小事情正在發生。
window.onresize = function(){resize()};
...
function resize()
{
...
var CL = document.getElementById("centerleft");
CL.style.position = "absolute";
CL.style.overflow = "auto";
CL.style.top = quaterCONSTANT+"px";
CL.style.left = "0px";
CL.style.width = CONSTANT+"px";
if (getWidth("menu") > CONSTANT)
TL.style.width = getWidth("menu")+"px";
CL.style.height = h+"px";
CL.style.backgroundColor = "#E6E6E6";
...
}
常數和quaterCONSTANT是常數和的getWidth(ID)是一個函數來獲取我問於元素的寬度,在這種情況下是寬度我的菜單位於我網頁的左側中央。
現在我每次調整大小時都會發生很多事情。我知道我應該拿出一些東西,比如不要一遍又一遍地將顏色設置成相同的顏色。這應該設置一次,但隨着項目的發展,這種情況就隨之而來。這不是我的初衷,要實現調整大小功能。
- 莫爾
您是不是也想清除每個resize事件的超時時間?否則,它根本沒有任何幫助,所有的事件仍然會發生 - 只是晚了。 –
「我只從事編程業務3個月,而且我沒有接受過真正的教育,所以我只知道到目前爲止,什麼樣的學校教給我,所以請詳細解釋你是如何建議你的代碼應該被使用的。「 你可以解釋一下更多關於在哪裏放置什麼樣的代碼? 我相信你是正確的關於清除超時問題。我在想,如果我能理解如何,這可能是答案:) – Molle
在哪裏聲明0是無效的超時ID?在哪裏聲明可以安全地將無效超時ID傳遞給'clearTimeout'? – 6502