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实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
Prototype使用指南之hash.js
Jan 10 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
Javascript实现字数统计
Jul 03 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
Apr 09 Javascript
vue实现在线学生录入系统
May 30 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
VOLVO车载收音机
2021/03/02 无线电
php 函数使用方法与函数定义方法
2010/05/09 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
原生js写的放大镜效果
2012/08/22 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python实现类之间的方法互相调用
2018/04/29 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
旅游项目开发策划书
2014/01/18 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
诚信高考倡议书
2019/06/24 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL