标签:
首先,实现一个原始页面,三列UL,每个UL下面多个li,来放置图片以及图片信息。
重点:通过滚动条事件来动态的从服务端获得图片,并创建li标签添加到对应的UL下。
滚动条事件:1.当每一列最后一个li出现在可视区域时,2.动态从服务端获得图片地址并创建li标签添加到对应的UL下。
1.当每一列最后一个li出现在可视区域时:
if(posTop(lastLi) < veiwHeight + scrollY)
其中:var veiwHeight = document.documentElement.clientHeight;//可视区高度
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;//获取滚动距离;后一项视为了兼容Chrome
function posTop(obj){//最后一个li距离最上面的高度;
var top = 0;
while(obj){
top += obj.offsetTop;
obj = obj.offsetParent;
}
return top;
}
2.动态从服务端获得图片地址并创建li标签添加到对应的UL下:
ajax(‘data.js‘,function(str){//第一个参数地址,第二个回调函数;实际中,第一个地址是动态的。 var json = eval(‘(‘+ str +‘)‘); if(json.code){ bBtn = true; } for(var i=0;i<json.list.length;i++){ var list = json.list[i]; for(var j=0;j<list.src.length;j++){ var oLi = document.createElement(‘li‘); oLi.innerHTML = ‘<img src="‘+ list.src[j] +‘" /><p>‘+ list.title[j] +‘</p>‘; aUl[i].appendChild(oLi); }
其中data.js是
{ code : 0, list : [ {src:[‘img/1.jpg‘,‘img/2.jpg‘,‘img/3.jpg‘],title:[‘222222222‘,‘222222222‘,‘222222222‘]}, {src:[‘img/4.jpg‘,‘img/5.jpg‘,‘img/6.jpg‘],title:[‘222222222‘,‘222222222‘,‘222222222‘]}, {src:[‘img/7.jpg‘,‘img/8.jpg‘,‘img/9.jpg‘],title:[‘222222222‘,‘222222222‘,‘222222222‘]} ] }
完整代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{ margin:0; padding:0;}
li{ list-style:none;}
#div1{ width:785px; height:auto; margin:20px auto;}
ul{ width:225px; margin:5px; float:left;border:1px solid red;}
</style>
<script type="text/javascript" src="new_ajax.js"></script>
<script>
window.onload = function(){
var aUl = document.getElementsByTagName(‘ul‘);
var bBtn = true;
window.onscroll = function(){
var veiwHeight = document.documentElement.clientHeight;
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;//后一项视为了兼容Chrome//获取滚动距离;
for(var i=0;i<aUl.length;i++){
var aLi = aUl[i].getElementsByTagName(‘li‘);
var lastLi = aLi[aLi.length-1];//只需判断最后一个li是否进入可视区;
if(posTop(lastLi) < veiwHeight + scrollY && bBtn){
bBtn = false;
ajax(‘data.js‘,function(str){//第一个参数地址,第二个回调函数;
var json = eval(‘(‘+ str +‘)‘);
if(json.code){
bBtn = true;
}
for(var i=0;i<json.list.length;i++){
var list = json.list[i];
for(var j=0;j<list.src.length;j++){
var oLi = document.createElement(‘li‘);
oLi.innerHTML = ‘<img src="‘+ list.src[j] +‘" /><p>‘+ list.title[j] +‘</p>‘;
aUl[i].appendChild(oLi);
}
}
});
}
}
};
function posTop(obj){
var top = 0;
while(obj){
top += obj.offsetTop;
obj = obj.offsetParent;
}
return top;
}
};
</script>
</head>
<body>
<div id="div1">
<ul>
<li>
<img src="img/1.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/2.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/3.jpg" />
<p>111111111</p>
</li>
</ul>
<ul>
<li>
<img src="img/4.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/5.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/6.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/9.jpg" />
<p>111111111</p>
</li>
</ul>
<ul>
<li>
<img src="img/7.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/8.jpg" />
<p>111111111</p>
</li>
<li>
<img src="img/9.jpg" />
<p>111111111</p>
</li>
</ul>
</div>
</body>
</html>
标签:
原文地址:http://www.cnblogs.com/Aaron-dzl/p/5818856.html