loading.js 979 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. const events = [];
  2. const $scroll = function(dom, fn) {
  3. events.push({ dom, fn });
  4. fn._index = events.length - 1;
  5. };
  6. $scroll.remove = function(fn) {
  7. fn._index && events.splice(fn._index, 1);
  8. };
  9. //上拉加载;
  10. const Scroll = {
  11. addHandler: function(element, type, handler) {
  12. if (element.addEventListener)
  13. element.addEventListener(type, handler, false);
  14. else if (element.attachEvent) element.attachEvent("on" + type, handler);
  15. else element["on" + type] = handler;
  16. },
  17. listenTouchDirection: function() {
  18. this.addHandler(window, "scroll", function() {
  19. const wh = window.innerHeight,
  20. st = window.scrollY;
  21. events
  22. .filter(e => e.dom.scrollHeight && e.dom.scrollHeight > 0)
  23. .forEach(e => {
  24. var dh = e.dom.scrollHeight;
  25. var s = Math.ceil((st / (dh - wh)) * 100);
  26. if (s > 85) e.fn();
  27. });
  28. });
  29. }
  30. };
  31. Scroll.listenTouchDirection();
  32. export default $scroll;
  33. export { Scroll };