Svelte项目中获取window scrollTop值及滚动事件无响应问题排查
解决Svelte中监听滚动无响应及获取scrollTop的问题
- 你用错了事件名:Svelte的
svelte:window上不存在scrollX事件,正确的全局滚动监听事件是scroll,这就是控制台无输出的核心原因。 - 修正后的可运行代码:
<script> function checkScroll() { console.log("Scrolled"); // 获取window的滚动距离(兼容不同浏览器) const scrollTop = window.scrollY || document.documentElement.scrollTop; console.log("滚动距离:", scrollTop); } </script> <svelte:window on:scroll={checkScroll}/>
- 额外排查点:
- 确保页面内容高度超过视口高度,否则不会出现滚动条,自然触发不了滚动事件
- 如果滚动容器不是window(比如某个设置了
overflow: auto的div),需要给该元素绑定on:scroll事件,此时获取滚动距离要读取该元素的scrollTop属性
内容的提问来源于stack exchange,提问作者Danny DOC
相关产品推荐
相关产品推荐

