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 相关文章推荐
网页禁用右键实现代码(JavaScript代码)
Oct 29 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
基于jQuery的为attr添加id title等效果的实现代码
Apr 20 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 Javascript
JS实现给对象动态添加属性的方法
Jan 05 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
深入理解JS异步编程-Promise
Jun 03 Javascript
关于JavaScript回调函数的深入理解
Jun 27 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
一个简单计数器的源代码
2006/10/09 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
jquery.validate使用详解
2016/06/02 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
Python同时迭代多个序列的方法
2020/07/28 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
商务英语求职自荐信范文
2013/12/24 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
社区文化建设方案
2014/05/02 职场文书
运动会加油口号
2014/06/07 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL