js滚动加载数据

<html>
 <head></head>
 <body>
  &lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&gt; &lt;% String path = request.getContextPath(); %&gt; &lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&gt; &lt;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; prefix=&quot;fmt&quot; %&gt;    
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
  <title>Insert title here</title> 
  <link rel="stylesheet" type="text/css" href="../static/css/common.css" /> 
  <link rel="stylesheet" type="text/css" href="../static/css/index_head.css" /> 
  <link rel="stylesheet" type="text/css" href="../static/css/productlist.css" /> 
  <link rel="shortcut icon" href="../static/images/favicon.ico" /> 
  <script type="text/javascript" src="../static/js/jquery-1.11.1.min.js"></script> 
  <script type="text/javascript" src="../static/js/circle-progress.js"></script> 
  <script type="text/javascript" src="../static/js/productlist.js"></script> 
  <!--根据页面宽度设置宽--> 
  <script>(function(){var b=document.documentElement,a=function(){var a=b.getBoundingClientRect().width;b.style.fontSize=0.05*(640<=a?640:a)+"px"},c=null;window.addEventListener("resize",function(){clearTimeout(c);c=setTimeout(a,300)});a()})();</script>   
  <!-- head部分 --> 
  <header class="clearfix"> 
   <a class="homelink" href="#"> <img src="../static/images/home_icon.png" alt="" /> </a> 
   <a class="uclink" href="#"> <img src="../static/images/user_icon.png" alt="" /> </a> 
  </header> 
  <!-- head部分 --> 
  <!-- 导航 --> 
  <div class="pronav"> 
   <h3>理财投资</h3> 
   <div class="navlist clearfix"> 
    <ul>
      &lt;%-- &lt;%=path%&gt;/index/productList.html?type=newone coop invest transfer--%&gt; 
     <li <c:if="" test="${style == 'newone'}">class='cur'&gt; <p><a href="#" onclick="updateClass('newone')"><font color="white">新手专享</font></a></p> <i></i> </li> 
     <li <c:if="" test="${style == 'coop'}">class='cur'&gt; <p><a href="#" onclick="updateClass('coop')"><font color="white">酷铺专区</font></a></p> <i></i> </li> 
     <li <c:if="" test="${style == 'invest'}">class='cur'&gt; <p><a href="#" onclick="updateClass('invest')"><font color="white">投资专区</font></a></p> <i></i> </li> 
     <li <c:if="" test="${style == 'transfer'}">class='cur'&gt; <p><a href="#" onclick="updateClass('transfer')"><font color="white">债券转让</font></a></p> <i></i> </li> 
    </ul> 
   </div> 
  </div> 
  <!-- //导航 --> 
  <!-- 项目列表 --> 
  <div class="protype"> 
   <div class="typebody">
     &lt;%-- 
    <c:foreach items="${commonList }" var="commonInfo"> 
     <div class="proline"> 
      <p class="protitle">${commonInfo.name}</p> 
      <div class="prodes clearfix"> 
       <div class="prodes-l"> 
        <p class="percentnum">
         <fmt:formatnumber value="${commonInfo.apr*100 }" pattern="0" />%</p> 
        <p class="percentdes">年化收益</p> 
       </div> 
       <div class="prodes-m"> 
        <p class="pricenum">融资金额:
         <fmt:formatnumber type="number" value="${commonInfo.account/10000 }" maxfractiondigits="2" />万</p> 
        <p class="pricenum">期限:${commonInfo.time_limit }</p> 
       </div> 
       <div class="prodes-r"> 
        <div class="circle"> 
         <p>
          <fmt:formatnumber value="${commonInfo.tenderProgress}" type="percent" maxintegerdigits="3" /></p> 
        </div> 
       </div> 
      </div> 
      <a class="investbtn" href="#">立即投资</a> 
     </div> 
    </c:foreach> --%&gt; 
   </div> 
  </div>   
  <script type="text/javascript">
$(function(){
    load('${style}')//没太大用
})
var main = 0;
function load(obj){
    var scrollTop = $(this).scrollTop();
    var scrollHeight = $(document).height();
    var windowHeight = $(this).height();
    if(scrollTop + windowHeight == scrollHeight){
        main= ++main;//main相当于分页了  没加载一次 main加一  也就是当前页数加1
        getJson(obj);
    }
}
var infoLength = 1;  //目的是为了在没有数据的时候不要再请求后台
function getJson(obj){
    if(infoLength != 0){
        $.ajax({
            url:"productListToJson.html",
            type:"post",
            data:{"pageIndex" : main,"type":obj},//obj为后台接受类型
            dataType:"text",
            success:function(data){
                var jsonArr = eval(data);
                if(jsonArr.length == 0){//如果没有数据 infoLength 设置为0
                    infoLength = 0;
                    $(".typebody").append("<center><a href='#'>亲·没有数据了</a></center>");
                }
                for(var i = 0; i < jsonArr.length; i++){
                    $(".typebody").append('<div class="proline">');
                    $(".typebody").append('<p class="protitle">'+jsonArr[i].name+'</p>');
                    $(".typebody").append('<div class="prodes clearfix"><div class="prodes-l">');
                    $(".typebody").append('<p class="percentnum">'+jsonArr[i].apr*100+'%</p>');
                    $(".typebody").append('<p class="percentdes">年化收益</p></div><div class="prodes-m">');
                    $(".typebody").append('<p class="pricenum">融资金额:'+jsonArr[i].account/10000+'</p>');
                    $(".typebody").append('<p class="pricenum">期限:'+jsonArr[i].time_limit+'</p>');
                    $(".typebody").append('</div><div class="prodes-r"><div class="circle">');
                    $(".typebody").append('<p>'+jsonArr[i].tenderProgress+'</p>');
                    $(".typebody").append('</div></div></div><a class="investbtn" href="#">立即投资</a>');
                    $(".typebody").append('<div class="prodes-r"></div>');
                }
            },error:function(){
                alert("失败");
            } 
        })
    }
}
var style = '${style}';//获取后台传前台的参数
$(window).scroll(function(){//滚动时加载
    load(style);
});
function updateClass(obj){
    infoLength = 1;  //当点击按钮的时候重新赋值为1
    $(".typebody").html("");//点击新的按钮把追加的数据设置为空  重新加载
    main = 0;//并且重新设置当前页数
    style = obj;//当点击按钮的时候重新复制 
    load(obj);
}
</script> 
 </body>
</html>

 

参数说明 listLoadingMore({id:"",id2:function(){},action:function(){},pageNum:10,getNew:undefined,funcArg:undefined,func:function(){},loadingMustTime:0,loadingDom:function(){},loadedDom:function(){},nullDataFunc:function(){},endFunc:function(){},errorFunc:function(){}}); id:滚动条id,不可以是body; id2:滚动列表的id,通过function自行根据情况返回; action:数据来源的ajax地址,插件会自动加上page和length(分别表示请求页数和当前已有记录数),返回格式统一是[{},{}...],此类jsonArray; ajaxType:ajax提交方式,将更改传递数据的方式,默认post; pageNum:每页加载数量,将会根据这个数量判断是否全部加载完成; getNew:自定义获取数据方法; funcArg:自定义获取数据时传递的参数,类型为函数,返回所需参数; childrenTag:列表子项的标签,默认LI; func:非自定义获取数据时,创建每行数据的方法; loadingMustTime:强制最小加载时间,默认0; loadingDom:加载中动画自定义,返回Dom或者HTML代码; loadedDom:完全加载完成动画自定义,返回Dom或者HTML代码; nullDataFunc:数据列表为空时执行的方法; endFunc:每页数据加载完成时执行的方法; errorFunc:ajax获取数据失败时调用的方法。 回调方法 调用本方法初始化后将会得到一个专属的方法集: Object {getNew:function,isFull:function,isRunning:function,isStop:function,loading:function,show:function}; getNew():忽略判断条件,强制执行加载操作。此时数据传递中,page值可能出错,但length值一定正确,请谨慎判断后在执行该方法; isFull(boolean):修改列表加载完成标志。true为全部加载完成,false则相反; isRunning(boolean):修改列表当前是否正在加载中标志。几乎没有使用的机会; isStop(boolean):设置是否停止加载,设置为true时将会阻止未来的所有加载操作; loading():根据当前滚动条的位置,自动判断是否需要加载数据; show(boolean,boolean):强制设置加载中和加载完成dom的显示或隐藏,true表示显示,false相对。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值