亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

活動類保持激活狀態,我需要該激活類在滾動時不保持活動狀態

活動類保持激活狀態,我需要該激活類在滾動時不保持活動狀態

江戶川亂折騰 2023-11-11 21:49:04
這是全局變量const navigation = document.getElementById('nav_list');const sections = document.querySelectorAll('section');const links = document.querySelectorAll('li')let navLinks = '';該函數用于創建導航。const navMaker = function() {    sections.forEach(section => {                const sectId = section.id;                const sectNav = section.dataset.name;                navLinks = navLinks + `<li><a class="links_menu" href="#${sectId}">${sectNav}</a>                 </li>`;    });    navigation.innerHTML = navLinks; } navMaker();該函數用于添加和刪除活動類這個常量用于訪問所有列表:const linkErrays = document.querySelectorAll('li');const level = (section) => {    return Math.floor(section.getBoundingClientRect().top)}const delateClass = (section) => {    section.classList.remove('active_section');}const addClass = (condition, section) => {    if (condition) {        section.classList.add('active_section');    }}這是當有人滾動時的類激活const classActivation = () => {      linkErrays.forEach(section => {        const elementLevel = level(section);        inviewport = () => elementLevel < 50  && elementLevel >= -650        delateClass(section);    addClass(inviewport(), section);  });}window.addEventListener('scroll', classActivation);
查看完整描述

2 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

只需向窗口添加一個滾動事件,然后刪除該類或切換它。IE window.addEventListener('scroll', ()=>{ element.classList.remove('active'); })



查看完整回答
反對 回復 2023-11-11
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

我可能是錯的,但我認為只選擇li一次并且在實際生成它們之前可能是導致問題的原因,我建議先生成它們,如下所示:




const navigation = document.getElementById('nav_list');

const sections = document.querySelectorAll('section');

// using map / join to avoid the navLinks variable

navigation.innerHTML = sections.map(section => {

    const sectId = section.id;

    const sectNav = section.dataset.name;

    return `<li><a class="links_menu" href="#${sectId}">${sectNav}</a></li>`;

}).join('\n');


// query the li after creation

const links = document.querySelectorAll('li')

告訴我這是否有幫助。


編輯:我完全錯過了您在變量中重新查詢它們的情況linkErrays,所以我的答案對您當前的問題沒有幫助。


查看完整回答
反對 回復 2023-11-11
  • 2 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號