幾周前我構(gòu)建了一個導(dǎo)航欄,然后才意識到我沒有在上面設(shè)置 .active 類?,F(xiàn)在,我在 JS 中動態(tài)構(gòu)建了導(dǎo)航欄和鏈接,現(xiàn)在想為激活的任何一個提供相應(yīng)的 CSS。這就是我在 JS 中構(gòu)建導(dǎo)航欄的方式:let womensNav = document.createElement("ul");womensNav.classList.add("womensNav");const el1 = document.createElement("li");el1.innerHTML = "<a>Jeans</a>";el1.addEventListener("click", (e) => { document.location.href = "https://www.martadolska.com/product-category/women/womens-jeans";});womensNav.appendChild(el1);document.querySelector(".ast-woocommerce-container").appendChild(womensNav);我有不止一個鏈接,但出于這個目的,我不需要全部顯示。所以現(xiàn)在的目標(biāo)是構(gòu)建一個通用函數(shù),為導(dǎo)航欄中的活動元素提供相應(yīng)的類。document.querySelectorAll("#womensNav li").forEach(function (ele) { ele.addEventListener("click", function (e) { e.preventDefault(); document .querySelectorAll("#womensNav li a.active") .forEach((ele) => ele.classList.remove("active")); ele.parentNode.classList.toggle("active"); }); });這就是我的 CSS 的樣子:.womensNav li a:hover { color: var(--main-text-color); text-decoration: line-through darkred solid;}.womensNav li a::before { content: ""; position: absolute; width: 100%; height: 2px; bottom: 7px; left: 0; background-color: #b22222; visibility: hidden; transform: scaleX(0); transition: all 0.3s ease-in-out 0s;}.womensNav li a:hover::before { visibility: visible; transform: scaleX(1);}.womensNav li a:active::before { content: ""; position: absolute; width: 100%; height: 2px; bottom: 10px; left: 0; background-color: #b22222;}// up until this point everything works.active { text-decoration: line-through darkred solid;}我猜 JS 代碼的第二個片段中缺少/不完全正確,因為當(dāng)我的鏈接處于活動狀態(tài)時什么也沒有發(fā)生。我得到了我想要得到的動畫,但是一旦用戶被重定向到那個特定的鏈接,它就會消失,所以你不知道你在哪個子頁面上。
為動態(tài)創(chuàng)建的鏈接 JS 設(shè)置一個 .active 類
白板的微信
2023-05-11 14:33:03