我正在添加一個事件監聽器到窗口,以偵聽調整大小事件。基本上我想在瀏覽器寬度低於768px時刪除'center'
類,然後當我們高於768px時將其添加回去。JavaScript:如何在刪除它後在'resize'事件上添加一個類?
window.addEventListener('resize', function() {
var width = 0,
doc = document,
div = doc.getElementsByTagName('div'), i;
if (window.innerHeight) {
width = window.innerWidth;
} else if (doc.documentElement && doc.document.documentElement.clientHeight) {
width = doc.documentElement.clientWidth;
} else if (doc.body) {
width = doc.body.clientWidth;
}
if (width < 768) {
for (i = 0; i < div.length; i++) {
div[i].classList.remove('center');
}
} else {
div[i].classList.add('center');
}
}, false);
它正確刪除它,但檢查控制檯時,我立即得到此錯誤。不知道爲什麼它會記錄該錯誤從一開始...
index.html:591 Uncaught TypeError: Cannot read property 'classList' of undefined(…)
感謝任何幫助!
只是出於好奇,你爲什麼不乾脆使用CSS媒體查詢來做到這一點? –
爲什麼不在CSS中使用@media查詢? – TheValyreanGroup
你有'doc.document.documentElement'它應該是'doc.documentElement'和if(window.innerHeight)它應該在哪裏讀取window.innerWidth – amdouglas