您的位置:首页 > Web前端 > JQuery

JQuery实现页面随滚动条滚动而动态加载内容的效果

2013-05-27 16:21 1106 查看
新浪微博有这个功能,刚才思考一下 ,简单的写了一下实现方法,代码是Js的.

无可否认,这种方式应该算是web2.0的产物,在用户体验上具备很好的感受,除了微博在使用该方式外,另外我还发现有几个其他性质的网站也在用这种方式,原因是他们的网站页面比较长,所以用户在浏览的时候随着滚动条的拖拽而不断加载新的内容到浏览器内,虽然体验会不错,但是我感觉这种方式对搜索引擎的友好性将会降低.欢迎转载但请注明出处Email:See7di@Gmail.com,Seven的部落格http://hi.baidu.com/see7di

所以除非不得已我是不会使用这种方式的,就目前来看我的作品内我还没发现哪个程序需要使用这种方式.

不过不论如何,创新就是一种进步,难道不是吗?

下边的代码是直接使用javascript来实现:

window.onscroll = function(){

var water = document.getElementById("water");

water.style.top = (document.documentElement.scrollTop|document.body.scrollTop)+'px';

water.innerHTML = "scrollTop:" + (document.documentElement.scrollTop|document.body.scrollTop) + "<br/>ClientHeight:" + document.documentElement.clientHeight + "<br/>scrollHeight:" + document.documentElement.scrollHeight;

//滚动条在最底端的时候

if (document.documentElement.scrollHeight == (document.documentElement.scrollTop|document.body.scrollTop)+document.documentElement.clientHeight) {

//到最底端去请求新数据

var table=I.$('tag','table')[0];

var start=parseInt(table.rows[table.rows.length-1].cells[0].innerHTML)+1;;

var length=10;

var param='start='+start+'&length='+length;

I.AJAX.post('/test2/DataServlet',param,function(o){

var persons=I.AJAX.json(o.responseText);

//加载新的十行数据

for(var i=0;i<persons.length;i++){

var row=table.insertRow(table.rows.length);

row.insertCell(0).innerHTML=persons[i].id;

row.insertCell(1).innerHTML=persons[i].name;

row.insertCell(2).innerHTML=persons[i].age;

row.insertCell(3).innerHTML=persons[i].hoppy;

}

//删除前十行数据

for(var i=0;i<10;i++){

table.deleteRow(1);

}

window.scroll(0,parseInt(document.documentElement.scrollTop)-15);//设置滚动条的位置

});

}

//滚动条在最顶端的时候

if((document.documentElement.scrollTop|document.body.scrollTop)==0){

var table=I.$('tag','table')[0];

var e=table.rows[1].cells[0].innerHTML;

if(e!='0'){

var s=parseInt(e)-10<0?0:parseInt(e)-10;

var param='start='+s+'&length=10';

I.AJAX.post('/test2/DataServlet',param,function(o){

var persons=I.AJAX.json(o.responseText);

//加载新的十行数据

for(var i=0;i<persons.length;i++){

var row=table.insertRow(i+1);

row.insertCell(0).innerHTML=persons[i].id;

row.insertCell(1).innerHTML=persons[i].name;

row.insertCell(2).innerHTML=persons[i].age;

row.insertCell(3).innerHTML=persons[i].hoppy;

}

//删除后十行数据

for(var i=0;i<10;i++){

table.deleteRow(table.rows.length-1);

}

window.scroll(0,15);//设置滚动条的位置

});

}

}

下边的代码是使用Jquery来实现:

//感应滚动条的高度载入新内容

$(window).scroll(function(){

aa=parseInt($(document).height()); //获取文档的高度

oo=parseInt($(document).scrollTop()); //获取滚动条到顶部的垂直高度

if((aa-oo)<800){

if(!window.ia){

ia=1;

$.post("sys.php",{work:"hotels",s:('a=c+d 中国e+f&g>h')},function(msg){//用ajax即时获取伺服器上的资料

if(msg.length>0){

$("#index #tab5 #tab19").last().after(msg);

ia=null;

}else{

$("#index #div2").last().remove();

$("#index #tab5 #tab19").last().after('<span>Error:没有搜寻到任何结果,请尝试更换搜寻条件!</span>');

}

});

}

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: