问答详情
源自:3-2 jQuery实现瀑布流布局的图片加载功能

浏览器放大、缩小引起问题

http://img.mukewang.com/55b9c76c0001804913140520.jpg

浏览器先缩小打开网页,最大化后刷新,会有一部分空白,这个怎么解决???

提问者:别担心_有我陪着你 2015-07-30 14:44

个回答

  • 昨天de梦
    2016-02-04 18:12:49

    你应该使用了 $(window).on("resize", waterfall); 这句监听器了窗口大小的变化吧。

    试想,你先缩小再放大,就会产生这样的效果。这是为什么呢?原因是窗口变小后调用了waterfall方法,此时算出来的列数比原先的小,这时原先是处在第一行的图片现在到了第2行,那么到第2行的话就一定会被添加了 position:absolute属性。再放大的话,这个盒子又要”回到“第1行,但是它已经被添加了 position:absolute属性,所以它”回不去“了。因此,需要 在源代码中加上这么一句:

    if(index < cols) {
       $(value).removeAttr("style"); //移除style样式,配合 resize 事件(窗口变化时触发)

       hArr[index] = h;
    } else {

    如果它是处在第1行,那么一定要先移除掉style属性,不管它有没有style属性了。

  • 别担心_有我陪着你
    2015-07-30 15:14:49

    //按照浏览器最大化的宽度,6是经过测试得到
    var cols = (Math.floor($(window).width()/w)<6)?6:Math.floor($(window).width()/w);

    加上这一句可以解决,还有其他方法吗???