JavaScript实现锚点滚动到指定位置,防止被顶部遮挡
"使用以下JavaScript代码来监听页面滚动事件,并动态调整页面滚动位置以确保锚点不被固定的顶部遮住:\n\njavascript\n// 获取所有锚点元素\nconst anchors = document.querySelectorAll('a[href^="#"]');\n\n// 监听滚动事件\nwindow.addEventListener('scroll', () => {\n // 获取当前滚动位置\n const scrollPos = window.scrollY;\n\n // 遍历所有锚点元素\n anchors.forEach(anchor => {\n // 获取锚点所在位置的相对顶部偏移量\n const offsetTop = document.querySelector(anchor.getAttribute('href')).offsetTop;\n\n // 如果当前滚动位置超过了锚点所在位置的相对顶部偏移量\n // 则将页面滚动位置调整到锚点所在位置的相对顶部偏移量\n if (scrollPos >= offsetTop) {\n window.scrollTo({\n top: offsetTop,\n behavior: 'smooth'\n });\n }\n });\n});\n\n\n这段代码会在页面滚动时,遍历所有锚点元素,判断当前滚动位置是否超过了锚点所在位置的相对顶部偏移量,如果超过了,则将页面滚动位置调整到锚点所在位置的相对顶部偏移量。这样就能确保锚点不会被固定的顶部遮住,并且滚动到锚点位置时会有平滑的滚动效果(通过behavior: 'smooth'实现)。\n\n\n
原文地址: https://www.cveoy.top/t/topic/qhkR 著作权归作者所有。请勿转载和采集!