asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)


Posted in Javascript onMarch 14, 2012

自从腾讯微博上线以来,基本上就开始用了,一直到现在,作为一个开发人员,也看到了腾讯微博一直在不停的改变,也不知道大家有没有发现,腾讯微博提供两种加载数据的方式,一种是分页,一种是滚动浏览器滚动条加载数据,分页功能我想大家都做得太多了,今天我与大家分享一下我用滚动条滚动加载数据
下面开讲:

首先说一下思路,我用的是Jquery,然后通过Jquery的ajax()方法通过 HTTP 请求加载远程数据来实现的,用到Jquery,首先要应用jquery.min.js类库,如果本地没有,也可以直接引用下面地址<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>。

好吧,下面我们看下核心代码:

// - -!,你懂的. 
var count=<%=allcount %>; 
var times=0; 
var loaded = true; 
function Add_Data() 
{ 
var top = $("#main_left_add").offset().top; 
if(loaded && ($(window).scrollTop() + $(window).height() > top)) 
{ 
$("#main_left_add").html("数据加载中..."); 
times++; 
$.ajax( 
{ 
type: "POST", 
dataType: "text", 
url: "weibo.ashx", 
data: "userid="+<%=hf.Value %>+"&touserid="+<%=hf1.Value %>+"&count="+count+"×="+times+"&type=1", 
success: function(data) 
{ 
//alert("第"+times+"次追加数据."); 
if(data == "没有数据") 
{ 
$("#main_left_add").css("display","none"); 
loaded=false; 
AddEffect(); 
} 
else if(data == "") 
{ 
$("#main_left_add").html("点击加载更多..."); 
$("#main_left_add").css("display","block"); 
loaded=false; 
AddEffect(); 
} 
else if(data != "") 
{ 
$("#main_left_down").append(data); 
AddEffect(); 
} 
} 
} 
); 
} 
} 
$(window).scroll(Add_Data); 
//点击追加数据 
$("#main_left_add").click(function(){ 
$.ajax({ 
type: "POST", 
dataType: "text", 
url: "weibo.ashx", 
data:"userid="+<%=hf.Value %>+"&touserid="+<%=hf1.Value %>+"&count="+count+"×="+times+"&type=2", 
success: function(data){ 
if(data=="没有数据") 
{ 
$("#main_left_add").css("display","none"); 
AddEffect(); 
} 
else 
{ 
$("#main_left_down").append(data); 
$("#main_left_add").html("点击加载更多..."); 
AddEffect(); 
} 
} 
}); 
//鼠标移动效果 
$("#main_left_add").mouseover(function(){ 
$(this).css("background-color","#e4eef8"); 
}); 
$("#main_left_add").mouseout(function(){ 
$(this).css("background-color","#f0f5f8"); 
});

这是前台js代码,下面我稍微的解释一下代码:count是定义的数据总数,定义两个div,一的div用来追加数据,一个div用来判断滚动条的位置,再建一个*.ashx文件用来处理程序并返回相应的数据,根据此数据我们肯定判断加载情况,滚动追加完成后我还多加了一个"点击加载更多的功能...",此功能实现也与上面差不多...代码都在上面,供大家参考。

注意:为了防止滚动事件一直会被执行,所以才定义了一个loaded来控制滚动事件的执行。

Javascript 相关文章推荐
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
Nov 05 Javascript
JavaScript的this关键字的理解
Jun 18 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
原生js实现日期计算器功能
Feb 17 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
5个实用的JavaScript新特性
Jun 16 Javascript
JQuery UI的拖拽功能实现方法小结
Mar 14 #Javascript
10款非常有用的 Ajax 插件分享
Mar 14 #Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 #Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 #Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
Mar 08 #Javascript
Node.js实战 建立简单的Web服务器
Mar 08 #Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 #Javascript
You might like
php实现的操作excel类详解
2016/01/15 PHP
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
js获取form的方法
2015/05/06 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
基于python 取余问题(%)详解
2020/06/03 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
解决方案设计综合面试题
2015/08/31 面试题
应届生骨科医生求职信
2013/10/31 职场文书
教师研修随笔感言
2014/01/23 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
优秀高中学生评语
2014/12/30 职场文书
司机岗位职责
2015/02/04 职场文书
2015年助残日活动总结
2015/03/27 职场文书
Redis分布式锁Redlock的实现
2021/08/07 Redis