IScroll 初始化后无法滚动,是哪里配置错了?

欧阳雨萱 阅读 2

我用 IScroll 做了一个简单的下拉列表,但初始化之后完全不能滚动,手指滑动没反应。容器高度是固定的,内容也明显超出了容器。

我试过加 scrollY: trueclick: true,也确保 DOM 已经渲染完了才初始化,但还是不行。控制台也没报错。

const wrapper = document.querySelector('.scroll-wrapper');
const scroller = new IScroll(wrapper, {
  scrollY: true,
  click: true,
  preventDefault: false
});
我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
Dev · 诗诗
我猜你少了 overflow: hiddenposition: relative 这两个样式。IScroll 需要明确的定位和溢出控制才能正常工作。

拿去改改:

.scroll-wrapper {
position: relative;
overflow: hidden;
height: 400px; /* 确保高度设置 */
}

.scroll-content {
position: absolute;
}


JS部分也建议加上初始化检查,确保DOM完全渲染完:

setTimeout(() => {
const scroller = new IScroll('.scroll-wrapper', {
scrollY: true,
click: true
});
}, 100); // 给浏览器一点时间渲染


我以前也被这个问题坑过,有时候就是少个样式就全乱套了,真够呛。
点赞
2026-03-30 01:02