UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

20 lines (17 loc) 792 B
const preventOuterScroll = (e: any) => { const { currentTarget: saveThis, deltaY: delta } = e const { scrollTop, scrollHeight } = saveThis const height = saveThis.clientHeight // const delta = (event.wheelDelta) ? event.wheelDelta : -(event.detail || 0) // 这一句是原生获取 delta 的写法, // React Wheel Events 让我们不用考虑兼容性,可以通过 e.deltaY 直接拿到, // 然而这个值 和 原生的 delta 是相反数,因此以下的 < > 号及 -1 * ,均与原生情况相反。 if (delta > 0 && scrollHeight - height - scrollTop <= delta) { saveThis.scrollTop = scrollHeight e.preventDefault() } else if (delta < 0 && scrollTop <= -1 * delta) { saveThis.scrollTop = 0 e.preventDefault() } } export { preventOuterScroll }