首页 > 其他分享 >JQ 自动加载页面

JQ 自动加载页面

时间:2023-06-26 20:06:27浏览次数:42  
标签:function obj target JQ scrollPagination fn 加载 opts 页面


demo.html

<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>---------------</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>阅谁问君诵,水落清香浮</p></li>
<li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>+++++++++++++++</p></li>

 

scrollpagination.js

(function( $ ){		 
 $.fn.scrollPagination = function(options) {
		var opts = $.extend($.fn.scrollPagination.defaults, options);  
		var target = opts.scrollTarget;
		if (target == null){
			target = obj; 
	 	}
		opts.scrollTarget = target;
		return this.each(function() {
		  $.fn.scrollPagination.init($(this), opts);
		});
  };
  $.fn.stopScrollPagination = function(){
	  return this.each(function() {
	 	$(this).attr('scrollPagination', 'disabled');
	  });
  };
  $.fn.scrollPagination.loadContent = function(obj, opts){
	 var target = opts.scrollTarget;
	 var mayLoadContent = $(target).scrollTop()+opts.heightOffset >= $(document).height() - $(target).height();
	 if (mayLoadContent){
		 if (opts.beforeLoad != null){
			opts.beforeLoad(); 
		 }
		 $(obj).children().attr('rel', 'loaded');
		 $.ajax({
			  type: 'POST',
			  url: opts.contentPage,
			  data: opts.contentData,
			  success: function(data){
				$(obj).append(data); 
				var objectsRendered = $(obj).children('[rel!=loaded]');
				
				if (opts.afterLoad != null){
					opts.afterLoad(objectsRendered);	
				}
			  },
			  dataType: 'html'
		 });
	 }
  };
  
  $.fn.scrollPagination.init = function(obj, opts){
	 var target = opts.scrollTarget;
	 $(obj).attr('scrollPagination', 'enabled');
	 $(target).scroll(function(event){
		if ($(obj).attr('scrollPagination') == 'enabled'){
	 		$.fn.scrollPagination.loadContent(obj, opts);		
		}
		else {
			event.stopPropagation();	
		}
	 });
	 $.fn.scrollPagination.loadContent(obj, opts);
 };
	
 $.fn.scrollPagination.defaults = {
      	 'contentPage' : null,
     	 'contentData' : {},
		 'beforeLoad': null,
		 'afterLoad': null	,
		 'scrollTarget': null,
		 'heightOffset': 0		  
 };	
})( jQuery );

 

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/scrollpagination.js"></script>
<script type="text/javascript">
$(function(){
	$('#content').scrollPagination({
		'contentPage': 'demo.html', //你要搜索结果的页面
		'contentData': {},//你可以通过 children().size() 知道哪里是分页
		//谁该怎么滚动?在这个例子中,完整的窗口
		'scrollTarget': $(window),
		//在页面到达结束之前,从多少像素开始加载?
		'heightOffset': 10,
		//前负荷,一些功能,可能显示一个加载DIV
		'beforeLoad': function(){
			$('#loading').fadeIn();	
		},
		'afterLoad': function(elementsLoaded){ 
			//加载后,一些功能的动画结果和隐藏预载的div
			$('#loading').fadeOut();
			var i = 0;
			$(elementsLoaded).fadeInWithDelay();
			//如果超过100结果加载停止分页(仅用于测试)
			if ($('#content').children().size() > 100){
				$('#nomoreresults').fadeIn();
				$('#content').stopScrollPagination();
			}
		}
	});
	//元件中的延迟元件的褪色代码
	$.fn.fadeInWithDelay = function(){
		var delay = 0;
		return this.each(function(){
			$(this).delay(delay).animate({opacity:1}, 200);
			delay += 100;
		});
	};

});
</script>
</head>
<body>
<div id="demo">
    <div style="height:2000px;"></div>
    <ul id="content" style=" margin:0 auto; width:800px; color:#f60; background-color:eee;">
    	<li><p>内容开始</p></li>
    </ul>
    <div class="loading" id="loading">加载中</div>
    <div class="loading" id="nomoreresults">结束了</div>
</div>
</body>
</html>

 

效果图:

JQ 自动加载页面_JQ自动加载


 

 

标签:function,obj,target,JQ,scrollPagination,fn,加载,opts,页面
From: https://blog.51cto.com/u_16171388/6557262

相关文章

  • JQ 其它的点击事件用法
    demo.html<html><head><title></title><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><style>.over{ color:red; background:#888;}</style><scriptsrc="js/j......
  • JS 跳转对应的手机页面
    location.pathname(location对象的pathname属性)用于设置或取得当前URL的路径部分<scripttype="text/javascript"> varpath=location.pathname; alert(path);</script>效果图: 前提是手机和PC站都同一个数据库,更新的路径都是相同的,只是域名的不同。一个是www,另一个是m......
  • JQ 复选框全选反选
    <!DOCTYPE><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title><scriptsrc="js/jquery-1.10.1.min.js"type="text/javascript">&......
  • JQ 多行文本框高度变化
    <html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>文本框高度变化</title><styletype="text/css">*{ margin:0; padding:0; font:normal12px/17pxArial......
  • JQ 下拉框左右选择
    <html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title><styletype="text/css">*{ margin:0; padding:0;}div.centent{ float:left; text-......
  • JQ 表格展开伸缩
    style.csstable{border:0;border-collapse:collapse;}td{font:normal12px/17pxArial;padding:2px;width:100px;}th{font:bold12px/17pxArial;text-align:left;padding:4px;border-bottom:1pxsolid#333;width:100px;}.parent{background:#FFF38F;cursor:point......
  • thinkphp或者其他h5页面开启HMR
    在ThinkPHP框架中,HTML文件通常是由PHP渲染的视图文件。要在这样的环境中实现HMR(HotModuleReplacement,热模块替换),你可能需要将前端开发环境(如Webpack或Vite)与ThinkPHP集成。以下是一个基本的步骤:1.首先,你需要在项目中安装Node.js和npm(或yarn),并使用它们来安装W......
  • JQ 瀑布流
    demo.css*{ padding:0; margin:0;}.wrap{ position:relative;}.box{ position:absolute; left:0; top:0; width:250px;}.boximg{ width:250px;} demo.js$(function(){ $('img').load(function(){ varbox=$('.box'); var......
  • JQ 可展开折叠的导航
    <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title><style>*{padding:0;margin:0;}li{list-style-type:none;}body{margin:50px;font-family:\5FAE\8F6......
  • JQ 拖拽
    <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>拖拽</title><style>*{ padding:0; margin:0;}div{ width:100px; height:100px; background:#f00; cursor:pointer; ......