只监听父元素的滚动事件,而不监听子元素的滚动事件
第一种,JS
1、判断dom
this.$refs.squareRef.addEventListener('wheel', this.addScrolbarFn, false)
addScrolbarFn(event) {
event.stopPropagation()
const dom = this.$refs?.rightResultRef?.$refs?.resultDiv
if (event.target === this.$refs?.squareRef) {
const goFlag = dom?.scrollTop + dom.clientHeight === dom.scrollHeight ? true : false
// 上滚 && 不在顶部
if (event?.deltaY < 0 && dom.scrollTop !== 0) {
const scrollHeight = dom.scrollTop - 100
dom?.scrollTo(0, scrollHeight)
} else if (event?.deltaY > 0 && !goFlag) {
const scrollHeight = dom.scrollTop + 100
dom?.scrollTo(0, scrollHeight)
}
}
},
this.$refs.squareRef.removeEventListener('wheel', this.addScrolbarFn)
2、子元素阻止冒泡
<div id="parentEl" @wheel="handleScroll">
<div id="childEl" @wheel="handleChildScroll"></div>
</div>
<script>
var parentEl = document.querySelector('#parentEl');
var childEl = document.querySelector('#childEl');
function handleScroll(event) {
console.log('父元素滚动');
}
function handleChildScroll(event) {
event.stopPropagation();
console.log('子元素滚动');
}
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)