| /** |
| * aui-scroll.js |
| * @author 流浪男 |
| * @todo more things to abstract, e.g. Loading css etc. |
| * Licensed under the MIT license. |
| * http://www.opensource.org/licenses/mit-license.php |
| */ |
| (function(window) { |
| 'use strict'; |
| var isToBottom = false,isMoved = false; |
| var auiScroll = function (params,callback) { |
| this.extend(this.params, params); |
| this._init(params,callback); |
| } |
| auiScroll.prototype = { |
| params: { |
| listren:false, |
| distance: 100 |
| }, |
| _init : function(params,callback) { |
| var self = this; |
| if(self.params.listen){ |
| document.body.addEventListener("touchmove", function(e){ |
| self.scroll(callback); |
| }); |
| document.body.addEventListener("touchend", function(e){ |
| self.scroll(callback); |
| }); |
| } |
| window.onscroll = function(){ |
| self.scroll(callback); |
| } |
| }, |
| scroll : function (callback) { |
| var self = this; |
| var clientHeight = document.documentElement.scrollTop === 0 ? document.body.clientHeight : document.documentElement.clientHeight; |
| var scrollTop = document.documentElement.scrollTop === 0 ? document.body.scrollTop : document.documentElement.scrollTop; |
| var scrollHeight = document.documentElement.scrollTop === 0 ? document.body.scrollHeight : document.documentElement.scrollHeight; |
| |
| if (scrollHeight-scrollTop-self.params.distance <= window.innerHeight) { |
| isToBottom = true; |
| if(isToBottom){ |
| callback({ |
| "scrollTop":scrollTop, |
| "isToBottom":true |
| }) |
| } |
| }else{ |
| isToBottom = false; |
| callback({ |
| "scrollTop":scrollTop, |
| "isToBottom":false |
| }) |
| } |
| }, |
| extend: function(a, b) { |
| for (var key in b) { |
| if (b.hasOwnProperty(key)) { |
| a[key] = b[key]; |
| } |
| } |
| return a; |
| } |
| } |
| window.auiScroll = auiScroll; |
| })(window); |