jquery - 动态缩小缩略图大小,均匀占用空间

标签 jquery html css

我正在尝试减小缩略图的大小以使它们均匀地适合整个页面,但在不超过特定宽度的情况下仍然尽​​可能大。

以下代码是我能够实现的最接近的代码,问题是在某些宽度下,它并没有完全占据整个宽度。

我假设这是由于我对数学的理解不够充分,有人可以帮忙吗? (另外,我对 Javascript 不是特别熟悉)。

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
        <style>
            .thumb {
                display: inline-block;
                background-color: green;
                margin: 4px;
                width: 200px;
                height: 200px;
            }
        </style>
    </head>
    <body>
        <div id="thumbnails"><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div><div class="thumb"></div></div>

        <script>
            var resizeThumbnails = function() {
                var w = $('#thumbnails').width();
                var thumbsPerRow = w / 208;
                var thumbDiffer = 208 - (thumbsPerRow % 1) * 208;
                var thumbSize = 208 - (thumbDiffer / Math.floor(thumbsPerRow));
                var thumbSize = thumbSize - 8;
                $("#thumbnails .thumb").width(thumbSize).height(thumbSize);
            }
            $(window).resize(resizeThumbnails);
            $(window).ready(resizeThumbnails);
            resizeThumbnails();
        </script>
    </body>
</html>

最佳答案

var resizeThumbnails = function() {
    var w = $('#thumbnails').width();
    var thumbsPerRow = Math.ceil(w / 208);
    var thumbSize = Math.floor(w / thumbsPerRow) -8;
    $("#thumbnails .thumb").width(thumbSize).height(thumbSize);
}

通过将容器宽度除以缩略图宽度并向上取整,计算出一行可以容纳多少个缩略图(因为我们添加了额外的缩略图以缩小其他缩略图的大小)。根据每行的数量重新计算缩略图大小。

关于jquery - 动态缩小缩略图大小,均匀占用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767195/

相关文章:

javascript - 无法获得加号/减号按钮以正常工作 javascript

css - 在前任的::after 上删除 transformY 之后的多余填充

javascript - 未捕获的引用错误 : function is not defined

jquery - 比较 javascript 中的两个字符串,使用 jQuery 从表单元素获取

javascript - 自定义样式的工具提示

php - 离线使用没有 API 的 Google 字体

css - Material Design Lite 中的左、中、右对齐

php - 尝试在文本输入后自动提交表单

html - 创建一个导航栏,其中每个链接都有不同的悬停颜色

javascript - 计算每篇文章的高度和调整大小