node.js可以对文件进行读写
你看看的你的dataInt...
你只是创建了元素,并没有将元素显示到页面上去啊。
有没有内填充之类的,用height()获取是图片的尺寸,outertHeight()获取到加上填充的高度
不仅仅是火狐,任何浏览器,你先清空缓存,然后刷新,所有图片都会堆叠在一起,因为图片资源未加载完成js就执行了。若代码分散放到vue的生命周期钩子函数内,搭配使用v-for和$.nextTick,应该能避免这种问题。再不然你就使用图片预加载、懒加载技术,优化代码。
在动态添加完数据后,再执行一次瀑布流布局函数
第二次调用 ,是为了将新加载的图片按瀑布流方式重新布局
var $lastBox = $('#min>div').last();
不是min是main
代码是从上到下执行的,先appendTo img标签,然后是p标签
$('<img>').appendTo($(oBox)); $('<p>').appendTo($(oBox));
那得看你前面的代码,一般浏览器显示“未定义”就应该是你的len变量没有定义。
不太理解你这个拼一起,如果是要拼成一个特定的图案,那么肯定要把每一个元素的宽高设定好,否则每张图片的大小都不一样,如何拼成特定的图案啊~
不需要这个东西
为啥要混用呢?你这注释还真是乱,var div="<div class='box'><div class='pic'><img src='img/"+i+".jpg' /></div></div>";直接这样多好,而且你定义变量为啥要加$
在for循环后将数组清空
可以用for,只是更方便
你这个页面渲染出现了问题,应该是在定位时出现了问题,可能你视频并没有看完,定位有一步十分关键,定位的位置是在高度最小的下面进行渲染,这时候如果你的高度写死,在循环时没有进行高度的修改就会出现此问题,你只需要在循环最后加上一个hArr[minHIndex] += $boxs.eq(index).outerHeigt();即可(ps:我在这写的是通过JQuery实现的方法,如果你要用其他的方法请看视频。)
不能读取到 top属性,看你代码没错的话,应该是获取的元素没有获取到,所以找不到top属性
可能是因为你没维护hArr数组。正确的做法是每添加一个新的div,就维护一下hArr[index]
$(window).on("resize",function () {
waterfall();
});
我觉得加()比较规范一点,不加也没错
box DOM对象
$box jquery对象,以便使用jq的方法
$(box) 将DOM对象封装成一个jquery对象,以便使用jq的方法
var div = $div.get(0); //通过get方法,转化成DOM对象
你改变页面大小时没执行函数,图片并没有消失,而是设置了绝对定位,被下面的图片覆盖了,你可以再加上$(window).resize事件,让窗口大小改变时,将第一行图片的绝对定位清除或重新设置
应该是写错了,你下载这节课的源码看看。 里面用的就直接是oBox
你是不是没有引用jQuery
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
生成随机数,范围是你图片的个数,用随机数替换json那块代码应该可行
你的窗体能容下显示的图片是不会出现滚动条的,因为它并不需要滚动来显示更多的数据,所以把图片高度值设置高点
贴代码啊,,,,贴全了,比图重要多了
已解决怎么解决