| 1234567891011121314151617181920212223242526272829303132333435363738 |
- const events = [];
- const $scroll = function(dom, fn) {
- events.push({ dom, fn });
- fn._index = events.length - 1;
- };
- $scroll.remove = function(fn) {
- fn._index && events.splice(fn._index, 1);
- };
- //上拉加载;
- const Scroll = {
- addHandler: function(element, type, handler) {
- if (element.addEventListener)
- element.addEventListener(type, handler, false);
- else if (element.attachEvent) element.attachEvent("on" + type, handler);
- else element["on" + type] = handler;
- },
- listenTouchDirection: function() {
- this.addHandler(window, "scroll", function() {
- const wh = window.innerHeight,
- st = window.scrollY;
- events
- .filter(e => e.dom.scrollHeight && e.dom.scrollHeight > 0)
- .forEach(e => {
- var dh = e.dom.scrollHeight;
- var s = Math.ceil((st / (dh - wh)) * 100);
- if (s > 85) e.fn();
- });
- });
- }
- };
- Scroll.listenTouchDirection();
- export default $scroll;
- export { Scroll };
|