先给大家展示下效果图:
盛放图片的盒子模型如下:
rush:js;">
Box">
Box_img">
设置img-width为150px,然后Box_img添加内边距和阴影效果,Box的外边距为0,添加内边距。盒子的宽度是由img-width和边距撑开的。也就是说盒子之间是没有间距的,但是盒子内部有一些边距的效果。这样在js设置位置的时候就不用考虑边距问题,直接调用Box的宽度就可以了。
设置盛放所有Box的div的position为relative,这样在设置top值或是left值的时候,就不用考虑最外层的margin属性。
放置图片的位置:获得第一行图片的高度并且存放在数组里面,接下来的图片设置position为absolute,放置在高度最小的图片的下面,然后设置top和left,并且把数组的最小值加上新放置的图片的高度。也就是说HTML里面原始放置的图片除了第一行以外,其他的图片都是在js里面又重新定位的。
当滑动页面到底部的时候触发事件函数,紧接着放置一些图片,这样保证图片的无限加载。
HTML文件:
<div class="jb51code">
<pre class="brush:js;">
<!DOCTYPE html>
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box">
Box_img">
Box_img">
CSS文件:
rush:js;">
*{
margin: ;
padding:;
}
#content{
position: relative;
background-color: #;
}
.Box{
padding: px;
float: left;
}
.Box_img{
padding: px;
border: px solid #cccccc;
Box-shadow: px #cccccc;
border-radius: px;
}
img{
width: px;
height: auto;
}
js文件:
Math.floor()函数能够向下取整。
Math.min.apply(null,heightArr);函数能获得heightArr数组的最小值。
window.onscroll=function(){};滑动页面的时候触发这个函数。
document.documentElement.clientHeight;浏览器显示出来的高度。
document.documentElement.scrollTop;滑动的距离。
rush:js;">
/**
* Created by asua on 2016/4/9.
*/
window.onload=function(){
imgLocation("content","Box");
var lodeImage={"Date":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"},{"src":"7.jpg"},{"src":"8.jpg"},{"src":"9.jpg"},{"src":"10.jpg"},]}
window.onscroll=function(){
if(checkFlag()){
for(var i=0;iBox=document.createElement("div");
Box.className="Box";
var cparent=document.getElementById("content");
cparent.appendChild(Box);
var Box_img=document.createElement("div");
Box_img.className="Box_img";
Box.appendChild(Box_img);
var img=document.createElement("img");
img.src="Img/"+lodeImage.Date[i].src;
Box_img.appendChild(img);
}
imgLocation("content","Box");
}
}
}
function checkFlag(){
var cparent=document.getElementById("content");
var ccontent=getChildElement(cparent,"Box");
var lastContentHeight=ccontent[ccontent.length-1].offsetTop;
var scrollHeight=document.documentElement.scrollTop||document.body.scrollTop;
var pageHeight=document.documentElement.clientHeight||document.body.clientHeight;
console.log(lastContentHeight+":"+scrollHeight+":"+pageHeight);
if(lastContentHeightsstext="width:"+imgwidth*cols+"px;margin:30px auto";
var heightArr=[];
for(var i=0;i
相关文章
前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...