@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
34 lines (33 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.usePageScroll = usePageScroll;
var _react = require("react");
var _taro = require("@tarojs/taro");
var _runtime = require("@tarojs/runtime");
function usePageScroll(scroller) {
(0, _react.useEffect)(function () {
var _Current$page, _Current$page$path;
// 兼容react-ui 弄出来的代码
if (process.env.TARO_ENV !== 'h5') return;
var id = _runtime.Current === null || _runtime.Current === void 0 ? void 0 : (_Current$page = _runtime.Current.page) === null || _Current$page === void 0 ? void 0 : (_Current$page$path = _Current$page.path) === null || _Current$page$path === void 0 ? void 0 : _Current$page$path.replace(/([^a-z0-9\u00a0-\uffff_-])/gi, '\\$1');
var el = id ? document.querySelector(".taro_page#".concat(id)) : document.querySelector('.taro_page') || document.querySelector('.taro_router') || document.scrollingElement;
function listener(event) {
if (!event.target) return;
var _event = {
scrollTop: el === null || el === void 0 ? void 0 : el.scrollTop,
scrollLeft: el === null || el === void 0 ? void 0 : el.scrollLeft
};
scroller(_event);
}
el.addEventListener('scroll', listener);
return function () {
el.removeEventListener('scroll', listener);
};
}, [scroller]);
(0, _taro.usePageScroll)(function (e) {
if (process.env.TARO_ENV === 'h5') return;
scroller(e);
});
}
;