jQuery实现无限往下滚动效果代码


Posted in Javascript onApril 16, 2016

本文实例讲述了jQuery实现无限往下滚动效果的方法。分享给大家供大家参考,具体如下:

这是仿照腾讯的微薄上的一个效果。滚动条可以无限的网下滚动并且无刷不断从数据库中获取新的数据。

<style type="text/css">
body{ font-family: "Trebuchet MS",verdana,arial;}
#loading{ display:none; font-weight:bold;color:#FF0000;}
p { padding:10px;}
</style>
<p id="loading">loading data... </p>
$(function(){
   var isOK=true;//记录上次访问是否已经结束,如果ajax也有线程就好了
   var scrollH=0;//判断是往上滚还是往下滚
   var intI=1;
  // loading层是固定在页脚的记录牌
   $(".loading").css({"right":"2","bottom":0});
   $(".loading")
   .ajaxStart(function(){
    isOK=false;//执行ajax的时候把isOK设置成false防止第一次没有执行完的情况下执行第二次易出错
    $("#loading2").show();
     })
   .ajaxStop(function(){
     isOK=true;
     $("#loading2").hide();
     })
  $(window).scroll(function(){
   //控制load层
   document.getElementByIdx_x_x("loading").style.top=document.documentElement.scrollTop+"px";
    //触法ajax条件 可以换算成百分比更好
  if($(document).height()-$(window).scrollTop()-document.documentElement.clientHeight<240){
   //当前位置比上次的小就是往上滚动不要执行ajax代码块
   if(scrollH>document.documentElement.scrollTopY)
   {
    $(".loading").append("<br/>向上滚不执行")
    scrollH=document.documentElement.scrollTop;//记录新位置
    return;
    }
   if(isOK)//如果是第一次或者上次执行完成了就执行本次
   {
     scrollH=document.documentElement.scrollTop;//记录新位置
     $(".loading").append("<br/>~~<span style='background:#red'>执行了ajax。。。。。</span><br/>")
     isOK=false;
   $.ajax({
     type:"POST",
     dataType: 'xml',
     url:"http://localhost:49302/MY100/2010/WebService1.asmx/getDS",
     error:function(e){
      $(".main").append('发生了错误:'+e)
      },
     success:function(data){
      try{
      $(data).find("Table").each(function(i){
         $(".main").append("结果:"+$(this).children('txtTitle').text()+"<br/>");
         $(".main").append("结果:"+$(this).children('txtBody1').text()+"<br/>");
         $(".main").append("结果:"+$(this).children('txtBody2').text()+"<br/>");
         $(".main").append("结果:"+$(this).children('txtBody3').text()+"<br/>");
         $(".main").append("结果:"+$(this).children('txtBody4').text()+"<br/>");
         $(".main").append("结果:"+$(this).children('ID').text()+"<br/>");
         })//each
      }
      catch(e){
       $(".main").append("<p>"+e+"</p>")
      }
      }//success
     })//ajax
     }//if(isOK)
     else
     {
      $(".loading").append("<br/>~~你是向下滚了,但是上次还没有执行完毕,等等吧<br/>")
     }
   }// 触法ajax条件
   })//scroll
})//Jquery 结束处

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
javascript模拟订火车票和退票示例
Apr 24 Javascript
javascript使用call调用微信API
Dec 15 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
Jan 19 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
Oct 17 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
ng-alain表单使用方式详解
Jul 10 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
jQuery遍历json的方法分析
Apr 16 #Javascript
jquery对dom节点的操作【推荐】
Apr 15 #Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 #Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 #Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
Apr 15 #Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 #Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
Apr 15 #Javascript
You might like
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
Vuex提升学习篇
2018/01/11 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python grpc超时机制代码示例
2020/09/14 Python
Python如何执行系统命令
2020/09/23 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
设计毕业生简历中的自我评价
2013/10/01 职场文书
《雾凇》教学反思
2014/02/17 职场文书
建房协议书
2014/04/11 职场文书
差生评语大全
2014/05/04 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
乌镇导游词
2015/02/02 职场文书
同学会演讲稿
2019/04/02 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
无线电知识基础入门篇
2022/02/18 无线电