为了账号安全,请及时绑定邮箱和手机立即绑定
我一直很纳闷 那个变量为什么也要加上 jQuery对象 ...
直接 $(function(){}) 就等同于window.onload
jQuery是个库 不是框架..angular bootstrap 那些才是框架
jQuery现在也是过时了,但是过时!=没用。

最新回答 / LouisAnna
可能是因为计算窗口宽度和列数的地方出错了

已采纳回答 / LouisAnna
用Math.floor是为了取下限值,如果你用Math.round则是用四舍五入的方法,也不是说不行,结果只差一个像素。parseInt是用来做类型转换的,一般不建议。
第一遍完全是攒MP用的o(* ̄▽ ̄*)o
最后这句代码费了我点时间想。说一下,权当给自己听,for循环的else条件就是从第六个往后,每次循环都验证下数组里最小值,并写了一个函数,来取得最小值的下标。循环完第一列,也就是box下标为6的循环,取得了最小值的下标为3,然后把top设为3的高度(放在下标3 的下面),left设为3*width,最重要的是把这个最小值变成两个Box的高度和!所以下次循环再取最小值的下标时候就不是3 了!而是重新计算数组中的最小值 那肯定就是其余中的一个了!那就获得那个值的下标 由此一整行都可以完成从下面接上Box 然后这行每个都加了Box的高度后,再计算又是开始时的最小值了!所以完成了每列每行的放置!
var txtarr = all[i].className.split(" "); // 将数组的class分开,适用于多个类名的时候
for(var j=0; j<txtarr.length; j++){
if(txtarr[j] == classname){
arr.push(all[i]);
}

最赞回答 / qq_LM_3
无法读取定义的属性的offsetleft”,可能是你前面的对象没有获取到然后就无法获取offsetLeft的值,你还是贴代码吧,不然就一个错误不知道因为什么报的错
[Web浏览器] "Uncaught TypeError: Cannot read property 'offsetLeft' of undefined"
字符限制略蛋疼,忽略一下空格可好?不贴了
function getIndex(val,arr){
for(var i=0;i<arr.length;i++){
if(arr[i]==val){
return i
}
}
}
document.getElementById('main').style.width=cols*oBoxsW+'px';
function waterfall(parent,box){
var oParent=document.getElementById(parent);
var oBoxs=getByClass(oParent,box);
var windowWidth=window.innertWidth||document.documentElement.clientWidth;
var oBoxsW=oBoxs[0].offsetWidth;
var cols=Math.floor(windowWidth/oBoxsW);
var arr=[];
这里写的瀑布流并不是按照顺序增加图片 而是按照类名pic盒子的高度来设置盒子的left偏移量,我做了一下修改,让图片按照顺序增加
看评论试了一下,checkScrollSide不加括号没有加载的那个效果,加了括号才有那个加载效果
你们有没发现,最下面的最长的图片居然有部分显示在下一列的最上面!!!!什么原因???
课程须知
1.你一定对HTML+CSS比较熟悉; 2.掌握一定的JS基础知识,尤其是函数封装、调用等知识; 3.对jQuery相关知识掌握。
老师告诉你能学到什么?
1.学会实现瀑布流布局实现的三种方式; 2.div如何定位和排序; 3.掌握CSS3中多栏布局的知识。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消