【问题标题】:Generating automated links based on automated image retrieval system (Freewall.js - Grid Layout)基于自动图像检索系统生成自动链接(Freewall.js - 网格布局)
【发布时间】:2014-05-07 18:37:00
【问题描述】:

我一直在使用Freewall jQuery plugin 来生成一个基于网格的响应式图片库。这样的作品,我不得不说。但是,鉴于画廊的图像是以自动方式检索的,我一直在努力寻找一种使图片可链接的方法:

<script type="text/javascript">

        var temp = "<div class='cell' style='width:{width}px; height: {height}px; background-image: url(grid-images/photo/{index}.jpg)'></div>";
        var w = 280, h = 320, html = '', limitItem = 15;
        for (var i = 0; i < limitItem; ++i) {
            html += temp.replace(/\{height\}/g, h).replace(/\{width\}/g, w).replace("{index}", i + 1);
        }
        $("#freewall").html(html);

        var wall = new freewall("#freewall");
        wall.reset({
            selector: '.cell',
            animate: true,
            cellW: 280,
            cellH: 320,
            onResize: function() {
                wall.refresh();
            }
        });
        wall.fitWidth();
        // for scroll bar appear;
        $(window).trigger("resize");
    </script>

在其他版本的代码中,Minh 已将画廊的每张图片的代码放在 html 文件中。我觉得特别有用的是 JS 代码的自动检索,我想知道...是否有一种自动方式将每张图片与某个链接相关联,从而使图片可链接?

那就是:1A2B3C 等等。

【问题讨论】:

    标签: javascript jquery html layout grid


    【解决方案1】:

    不是 100% 确定你想看到什么,但也许你可以做这样的事情(尽量保持你一直在做的方式):

    <script type="text/javascript">
            var links = ["A.html", "B.html", "C.html"];
            var titles = ["titleA", "titleB", "titleC"];
            var temp = "<a href='{link}' ><div class='cell' style='width:{width}px; height: {height}px; background-image: url(grid-images/photo/{index}.jpg)'><div class='showOnHover'>{title}</div></div></a>";
            var w = 280, h = 320, html = '', limitItem = 15;
            for (var i = 0; i < limitItem; ++i) {
                html += temp.replace(/\{height\}/g, h).replace(/\{width\}/g, w).replace("{index}", i + 1).replace("{link}", links[i]).replace("{title}", titles[i]);
            }
            $("#freewall").html(html);
    
            var wall = new freewall("#freewall");
            wall.reset({
                selector: '.cell',
                animate: true,
                cellW: 280,
                cellH: 320,
                onResize: function() {
                    wall.refresh();
                }
            });
            wall.fitWidth();
            // for scroll bar appear;
            $(window).trigger("resize");
        </script>
    

    【讨论】:

    • 系统使用 i+1 参数检索图像。我希望每个图像都是可链接的,据我所知,应该将图像数组的每个元素与 html 文件数组相关联,就像您在代码中所做的那样。但是,我无法使您的代码正常工作。我认为缺少一些语法。我已经在原始帖子上上传了整个 Javascript 代码。希望能帮助到你! ;)
    • 您非常了解我想要做什么,但不太确定当前语法有什么问题。我会再检查一次。另外,您想将图像链接到什么? (只是给我一个想法)
    • 简单地说,每张图片都会把用户带到一个新的html页面。我知道这也必须自动化,以便代码始终使 i+1 对应于 A.html,i+2 对应于 B.html,i+3 对应于 C.html。感谢您的帮助,顺便说一句,非常感谢!
    • 我对此进行了测试,效果很好,编辑了我的答案以包含您的所有代码,以便您更轻松地对其进行测试。请注意,数组从 0 开始,而不是从 1 开始,因此 A.html 对应于 links[0],因此我们不应该通过 i+1 来获取第一个。
    • 更改了我的答案,希望对您有所帮助
    【解决方案2】:

    请用这个

    var links = ["A.html", "B.html", "C.html"];
            var titles = ["titleA", "titleB", "titleC"];
            var temp = "<a href='{link}' title='{title}'><div class='cell' style='width:{width}px; height: {height}px; background-image: url(grid-images/photo/{index}.jpg)'></div></a>";
            var w = 280, h = 320, html = '', limitItem = 15;
            var index = 0;
            for (var i = 0; i < limitItem; ++i) {
                index = i % 3;
                html += temp.replace(/\{height\}/g, h).replace(/\{width\}/g, w).replace("{index}", i + 1).replace("{link}", links[index]).replace("{title}", titles[index]);
            }
            $("#freewall").html(html);
    

    跟随变量index

    【讨论】:

    • 嘿,谢谢你的回答@mihn-nguyen!我更多的是寻找可以重叠图像的文本字符串数组,就像您在其他版本的代码中所做的那样,例如在goo.gl/jy1sCe 中。我想在图像上有一个文本字段,该字段将随着数组的进行而改变。 @gabriel 和您建议的是通过将光标悬停在图像上来激活的响应。我对此没有太多的编辑控制权。我希望文本仅在光标悬停在图像上时出现,但作为包含在
      或其他一些 元素中的文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多