网页滚动到指定区域触发事件:jQuery 和原生 JS 如何实现?
当网页滚动到指定区域时触发特定事件:jquery 和原生 js 实现
需求描述:页面上的导航栏样式需要随着滚动条滚动到指定区域而发生变化,需要在滚动条滚动到某个特定位置时执行某个事件(如打印信息到控制台)。
jQuery 实现
// vh2px const vh = Math.floor(window.innerHeight / 100); var once = false; $(window).on('scroll', function() { if (once) { return; } if (window.scrollY >= vh * 200) { once = true; // TODO: 执行特定操作,例如打印信息到控制台 } });
原生 JS 实现
// vh2px const vh = Math.floor(window.innerHeight / 100); window.addEventListener('scroll', function() { if (once) { return; } if (window.scrollY >= vh * 200) { once = true; // TODO: 执行特定操作,例如打印信息到控制台 } });
这两种实现原理相同,都在页面滚动时监听滚动条的位置,并在滚动条滚到指定区域时触发一次性事件。