loading.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // +----------------------------------------------------------------------
  2. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  3. // +----------------------------------------------------------------------
  4. // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
  5. // +----------------------------------------------------------------------
  6. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  7. // +----------------------------------------------------------------------
  8. // | Author: CRMEB Team <admin@crmeb.com>
  9. // +----------------------------------------------------------------------
  10. const events = [];
  11. const $scroll = function(dom, fn) {
  12. events.push({ dom, fn });
  13. fn._index = events.length - 1;
  14. };
  15. $scroll.remove = function(fn) {
  16. fn._index && events.splice(fn._index, 1);
  17. };
  18. //上拉加载;
  19. const Scroll = {
  20. addHandler: function(element, type, handler) {
  21. if (element.addEventListener)
  22. element.addEventListener(type, handler, false);
  23. else if (element.attachEvent) element.attachEvent("on" + type, handler);
  24. else element["on" + type] = handler;
  25. },
  26. listenTouchDirection: function() {
  27. this.addHandler(window, "scroll", function() {
  28. const wh = window.innerHeight,
  29. st = window.scrollY;
  30. events
  31. .filter(e => e.dom.scrollHeight && e.dom.scrollHeight > 0)
  32. .forEach(e => {
  33. var dh = e.dom.scrollHeight;
  34. var s = Math.ceil((st / (dh - wh)) * 100);
  35. if (s > 85) e.fn();
  36. });
  37. });
  38. }
  39. };
  40. Scroll.listenTouchDirection();
  41. export default $scroll;
  42. export { Scroll };