js实现滚动条到底自动加载图片
来源:互联网 发布:mpi编程入门 编辑:程序博客网 时间:2024/06/05 11:36
一、之前Google的图片搜索结果界面提供了一个功能,即滚动条滚动到接近底部的位置自动加载剩余图片。个人觉得这个功能还蛮人性化的,避免来回翻页的繁琐,让搜索结果以增量形式展现。所以也自己仿造了一个。功能是基于JQuery的。下面是代码。
$(window).scroll(function() {var o = $('#pincontainer'); // 并不是所有页面都要执行加载操作。 // 你也可以选择别的识别条件。if(o!=null && o.length !=0){ //获取网页的完整高度(fix) var hght= window.scrollHeight; //获取浏览器高度(fix) var clientHeight =window.clientHeight; //获取网页滚过的高度(dynamic) var top= window.pageYOffset || (document.compatMode == 'CSS1Compat' ? document.documentElement.scrollTop : document.body.scrollTop); //当 top+clientHeight = scrollHeight的时候就说明到底儿了 if(top>=(parseInt(hght)-clientHeight)){ show(); }} }); //我所要执行的操作是把ajax取得的数据塞到目标div中 function show(){ var target = $('#pincontainer'); if(!target){return false;} //一般你都要记录一下你的数据的录入状态,比如到当前显示页码var current_page = parseInt(target.attr('index')); //还要记录一个最大显示页码,以阻止请求溢出var max_page = parseInt(target.attr('maxPages'));if(current_page >= max_page){ return false;}var data={};data.nextPage = parseInt(current_page)+1;var currentHref = window.location; // 有的时候可能还要从url中读取参数,我使用正则式var tcaStr = new RegExp("(^|)tca=([^\&]*)(\&|$)","gi").exec(currentHref);if(tcaStr) data.tca = tcaStr[2]; var scaStr = new RegExp("(^|)sca=([^\&]*)(\&|$)","gi").exec(currentHref);if(scaStr) data.sca = scaStr[2];var tagStr = new RegExp("(^|)tag=([^\&]*)(\&|$)","gi").exec(currentHref);if(tagStr) data.tag = tagStr[2]; // ajax请求数据jQuery.ajax({ type:"POST", url: "/show/getPins/", data:data, dataType: "json", beforeSend: function(XMLHttpRequest){ $("#loading").css('display',''); }, success:function(response) { if(response.data){ for(var i=0, length = response.data.length; i<length; i++){ var html = response.data[i]; var test = $(html); target.append(test); var img = test.find('img'); X.util.flowPin(img[0],188); } target.attr('index',parseInt(current_page)+1); $("#loading").css('display','none'); } }, error:function(){ alert("加载失败"); } });return false; }
这个功能的一个关键成败点是scrollTop的计算。刚开始我只使用了document.body.scrollTop,但是这个数值在chrome中一直显示0,于是有了上面的多浏览器兼容计算方法。
//获取网页滚过的高度(dynamic) var top= window.pageYOffset || (document.compatMode == 'CSS1Compat' ? document.documentElement.scrollTop : document.body.scrollTop);
改进:考虑到有些用户并不喜欢自动加载的功能,可以在页面上添加“取消自动加载”的按钮,换以按钮控制。
二、js_滚动条下拉 自动加载内容_仿qq空间的个人中心
<html><head><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ var range = 50; //距下边界长度/单位px var elemt = 500; //插入元素高度/单位px var maxnum = 3; //设置加载最多次数 var num = 0; $(window).scroll(function(){ var srollPos = $(window).scrollTop(); //滚动条距顶部距离(页面超出窗口的高度) var dbHiht = $("body").height(); //页面(约等于窗体)高度/单位px var main = $("#try"); //主体元素 var mainHiht = main.height(); //主体元素高度/单位px if((srollPos + dbHiht) >= (mainHiht-range) && num != maxnum){ main.append("<div style='height:"+elemt+"' >hello world"+srollPos+"---"+num+"</div>"); num++; } }); }); </script></head><body> <div id="try" style="height:960px"> <div id="follow">this is a scroll test;<br/> 页面下拉自动加载内容</div> </div></body></html>
三、
2.//Author:数据库之家3.//URL:http://www.uol123.com4.5.var page=0;6.$(window).scroll(function() {7. var o = $(‘#jokelist’);8. if(o!=null ){9. //var hght= document.body.scrollHeight;10. //var clt =document.documentElement.clientHeight;11. //var top= document.documentElement.scrollTop ;12. var hght= $(document).height();// 整个页面的高度13. var clt =$(window).height(); // 当前可见页面高度14. var top= $(document).scrollTop();// 滚动条距顶部高度15. if(top>=(parseInt(hght)-clt)>>page<5){//加载前5页的16. page=parseInt(page)+1;17. ReadMore(page);18. }19. }20.}); 21. 22. 23. 24.function ReadMore(page){25. $(“#news-bottom-list”).html(‘正在获取信息…’);26. $(“#news-bottom-list”).append(‘<img src=”img/dailyfun/loading2.gif”>’);27. next=parseInt(page)+1;28. setTimeout(function(){29. html=$.get(‘readmore.php’,‘p=’+page+‘>s=10′,function (data){30. $(“#jokelist”).append(data);31. if(next<=5){32. $(“#news-bottom-list”).html(“<a href=’javascript:void(0);’ onclick=’ReadMore(“+next+“);’>查看更多资讯↓</a>”);33. }else{34. $(“#news-bottom-list”).html(“”);35. }36. });37. },500);//等待0.5S后开始加载,你也可以去掉这个时间38. 39.}
- js实现滚动条到底自动加载图片
- 滚动条到底自动加载数据
- js +Ajax 实现滚动条自动加载内容
- 加载图片导致ul不能自动滚动到底的问题
- jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
- jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
- AngularJS:实现页面滚动到底自动加载数据的功能
- js实现滚动条边滚动边加载数据
- JS滚动条到网页底部自动加载更多内容
- js当滚动条即将到达底部自动加载数据
- 关于用jquery.masonry.js实现动态加载效果(当页面滚动条拉到底部时时重新加载图片)
- js滚动加载图片
- jquery实现浏览器滚动条往下时自动加载数据
- jquery实现浏览器滚动条往下时自动加载数据
- 手机页面列表滚动到底自动加载
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
- Duilib 中滚动条自动滚动到底的方法
- Duilib 中滚动条自动滚动到底的方法
- SharedPreferences使用
- 使用cdrecord命令刻录光盘
- 如何设计一个优秀的向导式界面(Wizard)
- 软件设计总结图
- android中的单选和多选框
- js实现滚动条到底自动加载图片
- 嗯,这个软件不错哟•••
- (转)eclipse debug (调试) 学习心得
- android之单选框
- 颜色参数对照表
- js encode decode
- DevTrack与Subversion,Eclipse Subversive集成详解(二)
- 协和医院器械处
- 睡眠质量不佳影响老人记忆力