为了账号安全,请及时绑定邮箱和手机立即绑定

预加载实现瀑布流布局--纵向

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
div{
width: 1000px;
}
img{
position: absolute;
}
</style>
</head>
<body>
<div></div>
<script type="text/javascript">
let box=document.querySelector('div'),//容器
baseWidth=200,//基宽;
imglist=[],//图片中转站;
pages=80,//图片数目;
columns=5//列数;
for(let i=1;i<pages+1;i++){
init(i)
}
function init(i){
let img=new Image();
img.src='./images/pic ('+i+').jpg';
img.=function(){
//添加缩放比例
Object.defineProperty(img,'scale',{
value:img.width/img.height
})
imglist.push(img);
if(imglist.length==pages){
//图片信息全部加载完成
console.log('over!')
formate();
}
}
}
function formate(){
let rows=pages/5;
for(let i=0;i<rows;i++){
for(let j=0;j<5;j++){
let index=i*5+j;//当前坐标
imglist[index].style.width='200px';
imglist[index].style.height=200/imglist[index].scale+'px';
imglist[index].style.left=j*220+'px';//基于当前宽度+20(列间隔)
if(i!=0){//Int转换为整数 20为行间隔 h t当前图片的上方的height top 
let t=Int(imglist[(i-1)*5+j].style.top),
h=Int(imglist[(i-1)*5+j].style.height);
imglist[i*5+j].style.top=t+h+20+'px';
}else
imglist[i*5+j].style.top='0px';
box.appendChild(imglist[i*5+j])//放入容器
}
}
}
function Int(str){
return Number(str.replace('px',''))
}
</script>
</body>
</html>

Emm......

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消