JQuery的自由墙:图像布局占据所有空间

时间:2015-04-27 22:13:14

标签: javascript jquery

所以,我试图想出一个类似radom的图像墙。我发现了一个名为Freewall的JQuery插件。

我能够想出这个:

enter image description here

每当我重新加载页面时,图像都会获得新的宽度和位置。它提供了一个很好的"随机"动画正在进行,但正如你在右边看到的那样,一个空的空间应该由前一个图像填充......有时候它甚至会产生3行而不是2行。

我使用的代码是从另一个来源复制并与我混淆的部分。我不太了解随机生成过程,因为它对我没有意义。但到目前为止......

这是当前的代码:

<div class="container">

<div id="freewall" class="free-wall bottomEq"></div>

<script type="text/javascript">
$(document).ready(function() {

    var temp = "<a href='{url}'><div class='mosaic-cell' style='width:{width}px; height: {height}px; background-image: url(<?php print $baseDir; ?>{imgUrl}); '></div></a>";
    var w = 1, html = '';

    var categories = JSON.parse('<?php print json_encode($categories); ?>');
    categories.shift();
    categories.shuffle();

    $.each(categories, function(index, category){

        w = 200 + 400 * Math.random() << 0;

        cTemp = temp.replace(/\{height\}/g, 200);
        cTemp = cTemp.replace(/\{width\}/g, w);
        cTemp = cTemp.replace("{imgUrl}", category.image.full);
        html += cTemp;
    });

    $("#freewall").html(html);
    var wall = new freewall("#freewall");

    wall.reset({
        selector: '.mosaic-cell',
        animate: true,
        cellW: 200,
        cellH: 200,
        onResize: function() {
            wall.fitWidth();
        }
    });

    wall.fitWidth();

    // for scroll bar appear;
    $(window).trigger("resize");

});
</script>

</div>
  1. 如何避免空格,强制前一个图像填充剩余空间?
  2. w = 200 + 400 * Math.random() << 0;到底做了什么? << 0
  3. 如何在Freewall上强制使用2行,我在文档中没有注意到任何可用的参数。
  4. 谢谢。

0 个答案:

没有答案