liding
4 天以前 359f69135b571c8e7b6d046bc849655abfe7075d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// +----------------------------------------------------------------------
// | CMS [ CMS赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.CMS.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CMS并不是自由软件,未经许可不能去掉CMS相关版权
// +----------------------------------------------------------------------
// | Author: CMS Team <admin@CMS.com>
// +----------------------------------------------------------------------
 
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 };