javascript - 按顺序随机排列图像

标签 javascript html css alignment

我有一个各种尺寸的图像列表,我必须在一个页面中显示它们。我想以这样一种方式排列它们,即一行上的图像和下一行上的图像之间不显示空白。不管怎样,我可以使用 CSS 和 Javascript 实现这一点,??

以下是jsFiddle上的例子。

http://jsfiddle.net/zHxPT/1/

最佳答案

如果您愿意让图像彼此重叠,您可以使用客户端代码动态定位元素,使它们之间的间隙最小:

window.onload = function() {
    var oList = document.getElementById("liParent")
    var arrItems = oList.getElementsByTagName("li");
    var totalWidth = parseInt(oList.style.width, 10);
    var curLeft = 0;
    var curTop = 0;
    var arrHeights = new Array();
    var colIndex = 0;
    for (var i = 0; i < arrItems.length; i++) {
        var oCurItem = arrItems[i];
        var oImage = oCurItem.getElementsByTagName("img")[0];
        oCurItem.style.position = "absolute";
        var curWidth = oImage.offsetWidth;
        var curHeight = oImage.offsetHeight;
        if (curLeft + curWidth > totalWidth) {
            curLeft = 0;
            colIndex = 0;
        }
        if (colIndex < arrHeights.length)
            curTop = arrHeights[colIndex];
        oCurItem.style.left = curLeft + "px";
        oCurItem.style.top = curTop + "px";
        arrHeights[colIndex] = (curHeight + curTop);
        curLeft += curWidth;
        colIndex++;
    }
}

更新的 jsFiddle:http://jsfiddle.net/zHxPT/2/

关于javascript - 按顺序随机排列图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4843064/

相关文章:

javascript - 通过 jQuery 更改表单上的操作后,GET 变量消失。

html - 在网页上嵌入 youtube 视频时如何避免 div 重叠?

css - 父div的高度设置干扰了子div的 float

html - 为什么 <p> 高度为 0% 时仍然可见

javascript - TableRow Material-UI 之间的间距

javascript - 滚动时设置渐变动画

javascript - knockout 简单绑定(bind)问题

javascript - ASP.NET 计时器 + 更新面板 : How do I stop the event from continually registering?

javascript - SoundCloud API 可以直接从 Windows 访问(例如使用 python 脚本)还是必须是从服务器运行的互联网应用程序?

javascript - 当鼠标悬停在 iframe 上时将元素沿 Y 轴向上移动