javascript - 创建显示 3 个图像的垂直缩略图

标签 javascript jquery html css image

我需要帮助来创建一个显示三个图像的垂直缩略图。和下一步按钮显示其他图像。这些图像是从数据库中循环的。下图是我想要的预览。例如我有 5 张图片,我的页面应该显示第 1、2、3 张图片。然后单击下一步按钮,它应该隐藏第一张图像并仅显示第二、第三和第四张图像。任何帮助将不胜感激。

enter image description here

到目前为止,这就是我所取得的成就。

enter image description here

我只是使用 css“overflow:hidden”隐藏了额外的图像。我不知道如何添加上一个和下一个按钮来调出它们。

这是我的一些代码:

            {foreach from=$images item=i name=images}
            {if $smarty.foreach.images.iteration <= 16 }
              <div class="thumbnail col-md-12 col-sm-12 col-xs-12"><a href="{$i.image_url|amp}" thumb="{$i.image_url|amp}" data-fancybox-group="gallery" class="fancybox" {if $smarty.foreach.images.iteration eq 1} id="first_icon"{/if} onclick="return {if $config.Detailed_Product_Images.is_jqzoom eq 'Y'}false{else}dicon_click({$smarty.foreach.images.iteration}, '{$config.Detailed_Product_Images.det_slideshow_delay}', '{$images_counter}');{/if}" {if $config.Detailed_Product_Images.is_rollover eq 'Y'} onmouseover="func_mouse_over(this, {$i.thbn_image_x}, {$i.thbn_image_y});"{/if}  target="_blank">
            <img src="{$i.image_url|amp}" alt="" >
              </a></div>
            {/if}
        {/foreach}

此部分仅用于显示缩略图。不要介意 href 部分。

最佳答案

这是一个更新的答案。这有点棘手,因为您必须摆弄 DOM 才能使图像以轮播方式滚动。它所做的是获取缩略图并显示前三个,同时隐藏其余部分。

然后,每次单击下一个按钮时,它都会从 DOM 中删除第一张图片并将其放在列表的末尾,然后显示前三张图片,同时隐藏其余图片。

所以您确实不需要数组,但您的想法有点相同:去掉第一个东西,把它放在最后,然后显示前三个并隐藏其余的。

编辑:我意识到我们不需要使用 JavaScript 来显示/隐藏元素,使用 CSS 会简单得多。只需删除第一个 child ,将他追加到末尾,让 CSS 显示前 3 个 child 。

var thumbs = document.querySelector('.thumbs');
var next = document.querySelector('button');

next.addEventListener('click', function() {
	var child = thumbs.removeChild(thumbs.firstElementChild);
  thumbs.appendChild(child);
});
.thumb {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  font-family: sans-serif;
  text-align: center;
  line-height: 100px;
  margin: 10px;
  display: none;
}

.thumb:nth-child(-n+3) {
  display: block;
}
<div class="thumbs">
  <div class="thumb">
    img 1
  </div>
  <div class="thumb">
    img 2
  </div>
  <div class="thumb">
    img 3
  </div>
  <div class="thumb">
    img 4
  </div>
  <div class="thumb">
    img 5
  </div>
</div>
<button>
  Next
</button>

这是用于回答不同问题的图片库示例,但您可以通过“下一步”按钮查看想法。

https://jsfiddle.net/subterrane/bb196sts/

button.addEventListener('click', function() {
    for (var ix = 0; ix < images.length; ix++) {
     images[ix].style.display = 'none';
    }

     index++;
     if (index >= images.length) index = 0;
    images[index].style.display = 'block';
});

您将事件处理程序添加到您的按钮并适本地显示/隐藏图像。

关于javascript - 创建显示 3 个图像的垂直缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961970/

相关文章:

javascript - 如何检查数组是否包含数组(数字)?

javascript - 从潇洒类(Class)拓展

javascript - 拖放错误

html - Bootstrap 中列的行跨度和高度

javascript - reactjs中渲染方法内部的条件

javascript - 列范围图表 Highcharts 中的多个间隔

javascript - 如何在WebStorm中同时调试服务器和客户端?

javascript - 如何检查表行是否只有 1 个可见表列

javascript - 将 HTML 值提取到 Javascript 变量中

c# - 将自定义字体加载到 html (webview) - Metro 应用程序