为了账号安全,请及时绑定邮箱和手机立即绑定
老师讲的不错,今天一天就跟着学习这个了!!

最新回答 / Jiaoguanwen
需要写括号,我的没加括号,它会直接判断为真,每次滚动滚动条就会加载很多,没有判断,视频里应该是老师忘记了,她的源码里有写,写不写我感觉是有区别的,因为我的这个一加括号就对了
......这个Array读成(爱若)

最新回答 / 真心镇de小志
老师,没给你写调整窗口大小重新布局的方法,你可以考虑自己添加一个

已采纳回答 / 耐斯兔米丘
var boxArr=new Array(), oElements=parent.getElementsByTagName('*');语句同时定义了boxArr和oElements两个变量
if(obj.currentStyle){
return obj.currentStyle[attr];
}
else{
return document.defaultView.getComputedStyle(obj,null)[attr];
}
}
//获取CSS样试里的值
function getStyle(obj,attr){
var ie = !+"\v1";//简单判断ie6~8
if(attr=="backgroundPosition"){//IE6~8不兼容backgroundPosition写法,识别backgroundPositionX/Y
if(ie){
return obj.currentStyle.backgroundPositionX +" "+obj.currentStyle.backgroundPositionY;
}
}
var documentH=document.documentElement.clientHeight;//页面高度
return (lastImgH<scrollTop+documentH)?true:false;//到达指定高度后 返回true,触发waterfall()函数
}
function checkscrollside(){
var main=document.getElementById("main");
var boxs = main.getElementsByClassName("box");
var lastImgH = boxs[boxs.length-1].offsetTop + Math.floor(boxs[boxs.length-1].offsetHeight/2);
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;//注意解决兼容性
//获取上一行最短图片的位置
function getminHIndex(arr,minH){
for(var i in arr){
if(arr[i]==minH){
return i;
}
}
}
var minH=Math.min.apply(null,boxH);
var minHIndex=getminHIndex(boxH,minH);
boxs[i].style.position = "absolute";
boxs[i].style.top = (minH+marginLeft)+"px";
boxs[i].style.left=(boxs[minHIndex].offsetLeft-marginLeft)+'px';
boxH[minHIndex]+=boxs[i].offsetHeight+marginLeft;//更新添加了块框后的列高
}}}
var row_num = Math.floor(document.documentElement.clientWidth/boxW);
parent.style.cssText="width:"+boxW*row_num+"px;margin:0 auto;";
var boxH = new Array;
for(var i=0;i<boxs.length;i++){
if(i<row_num){
boxH.push(boxs[i].offsetHeight);//第一行不用考虑排列,先获取值
console.log(boxH[i]);
}else{
function rank(parent,cls){
var parent =document.getElementById(parent);
var boxs = parent.getElementsByClassName("box");
var marginLeft = parseInt(getStyle(boxs[0],"marginLeft"))
var boxW = boxs[0].offsetWidth + marginLeft*2;
for(var i=0;i<dataInt.data.length;i++){ var box=document.createElement('div');
box.className='box'; main.appendChild(box); var img=document.createElement('img');
img.src='./images/'+dataInt.data[i].src; box.appendChild(img);
} rank('main','box'); }; }}
window.onload=function(){
rank('main','box');
var dataInt={'data':[{'src':'45.jpg'},{'src':'46.jpg'},{'src':'47.jpg'},{'src':'48.jpg'}]};
window.onscroll=function (){
if(checkscrollside()){
var main = document.getElementById('main');
课程须知
1.你一定对HTML+CSS比较熟悉; 2.掌握一定的JS基础知识,尤其是函数封装、调用等知识; 3.对jQuery相关知识掌握。
老师告诉你能学到什么?
1.学会实现瀑布流布局实现的三种方式; 2.div如何定位和排序; 3.掌握CSS3中多栏布局的知识。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消