我試圖通過在元素上設定一個類“骨架”來制作骨架加載螢屏,然后在超時后用javascript將其洗掉。問題是我無法讓 javascript 作業。
這是我洗掉類的 javascript,為什么它不起作用?
const timeout = setTimeout(loading, 3000);
function loading() {
const element = document.getElementById("skeleton");
element.classList.remove("skeleton");
}
uj5u.com熱心網友回復:
我認為正在發生的是你有太多具有相同 id 的“骨架”元素,并且 id 必須是唯一的。因此,洗掉 ids,并改為以類為目標,并使用forEach迭代它們中的每一個以洗掉類。
const timeout = setTimeout(loading, 3000);
function loading() {
const skeletons = document.querySelectorAll('.skeleton');
skeletons.forEach(skeleton => {
skeleton.classList.remove('skeleton');
});
}
.skeleton { color: red; }
<div class="skeleton">One</div>
<div class="skeleton">Two</div>
<div class="skeleton">Three</div>
<div class="skeleton">Four</div>
uj5u.com熱心網友回復:
您在 Class 上呼叫 getElmentById。你能分享 id 或 class 為骨架的 HTML Elment 試試這個
function loading() {
const element = document.getElementsByClassName("skeleton")[0];
element.classList.remove("skeleton");
}
uj5u.com熱心網友回復:
我認為它不起作用的原因是你試圖從骨架本身中洗掉骨架類。嘗試定位骨架的父元素,然后從父元素中移除骨架。您是否嘗試過使用:
const parentNode=document.querySelector(".parentElem");
parentNode.removeChild(document.querySelector(".skeleton"));
您是否注意到您試圖通過 using 獲取一個元素,getElementById而您說skeleton的是一個類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/453590.html
標籤:javascript html css
上一篇:檢測重疊點的點擊事件位置
