123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /**
- * 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);
|