• PC端和移动端滚动加载的相关问题(Angular下)


    app.directive('scrollLoading',['$location',function($location){
      		return {
      			restrict:'AE',
      			link:function(scope,ele,attrs){
      				var pageWindow = $(this);
      				// pageWindow.on('scroll',function(){
      				// 	if($location.$$path.indexOf('logcenter')>-1){
      				// 		if(pageWindow.scrollTop() <=0){
      				// 			console.log(pageWindow.scrollTop());
      				// 			scope.loadMore(0);
      				// 		}
      				// 	}
      				// });
    
    				//针对PC端的滚动加载数据的方法
      				pageWindow.on('DOMMouseScroll mousewheel',function(event){
      					if($location.$$path.indexOf('logcenter')>-1 && scope.enableMouseWheel){
    	  					var e = event || window.event;
    	  					var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) ||  // chrome & ie
    	                				(e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1));// firefox
    	  					if(delta > 0 && pageWindow.scrollTop() <=0){//向上滚动加载之前的数据
    	  						scope.$apply(function(){
    						        scope.loadMore(0);
    						    });
    	  					}else if(delta<0 && $(window).height() + $(window).scrollTop() - $(document).height() >= 0){//向下滚动加载之后的数据
    	  						scope.$apply(function(){
    						        scope.loadMore(1);
    						    });
    	  					}
    	  					// // for IE
    					   //  event.returnValue = false;
    					   //  // for Chrome and Firefox
    					   //  if(event.preventDefault) {
    					   //      event.preventDefault();	
    					   //  }
    	  				}
      				})
    
      				//针对移动端的滚动加载数据的方法
      				pageWindow.on('touchstart',function(se){
      					if($location.$$path.indexOf('logcenter')>-1 && scope.enableMouseWheel){
    	  					var seX = se.originalEvent.targetTouches[0].pageX;
    	  					var seY = se.originalEvent.targetTouches[0].pageY;
    	  					return pageWindow.off('touchmove').on('touchmove',function(me){
    	  						var meX = me.originalEvent.targetTouches[0].pageX;
    	  						var meY = me.originalEvent.targetTouches[0].pageY;
    	  						var disY = meY - seY;
    	  						var disX = meX - seX;
    	  						return pageWindow.off('touchend').on('touchend',function(ee){
    	  							if(disY>0 && pageWindow.scrollTop() <=0){//向上滚动加载之前的数据
    	  								scope.$apply(function(){
    							        	scope.loadMore(0);
    							    	});
    		  						}else if (disY<0 && $(window).scrollTop() + $(window).height() - $(document).height() >= 0){//向下滚动加载之后的数据
    		  							scope.$apply(function(){
    							        	scope.loadMore(1);
    							    	});
    		  						}
    	  						})
    	  					})
    	  				}
      				})
      			}
      		};
      }])
    

      

  • 相关阅读:
    Python程序中的线程操作-concurrent模块
    python程序中的进程操作-进程间的数据共享
    有几个消费者就需要发送几次结束信号
    python进程池
    Python程序中的线程操作-concurrent模块
    Python程序中的线程操作-线程队列
    Python程序中的线程操作-守护线程
    进程操作-进程池
    进程池版socket并发聊天
    使用多进程请求多个url来减少网络等待浪费的时间
  • 原文地址:https://www.cnblogs.com/hzwl-2015/p/6475622.html
Copyright © 2020-2023  润新知