同一页面上的多击幻灯片

塞拉菲尔

我正在尝试创建一个Tumblr主题,其中将照片集显示为点按式幻灯片放映。我(终于)设法使它几乎可以工作,但是我仍然遇到一些问题。

  1. 第一次浏览幻灯片时,最后一张照片后会有空白,您必须再次单击以使幻灯片再次运行,然后无缝重复播放。

  2. 页面上有多个幻灯片演示,并且

    a)如果单击第一个幻灯片,其他幻灯片将滚动浏览。

    b)通过单击第一个幻灯片获得最终的幻灯片照片后,幻灯片将变为空白(您可以继续单击它们,但没有图像显示)。

如果您想就地进行尝试,以更好地理解我的意思,可以在这里进行

这是我当前正在使用的代码:

jQuery查询

$('.slideshow img:first-child').addClass('active');
$(document).ready(function () {
    $('.slideshow').on('click', function () {
        if ($('.active').next('.slideshow img').length) {
            $('.active').removeClass('active').next('.slideshow img').addClass('active');
        } else {
            $('.active').removeClass('active');
            $('.slideshow img').first().addClass('active');
        }
    });
});

HTML(我不能为每个幻灯片制作唯一的类/ ID,因为这是一个主题,而不是一个独立的网站)

<div class="slideshow right_part>
    <img src="image_one.jpg" />
    <img src="image_two.jpg" />
    <img src="image_three.jpg" />
    <img src="image_four.jpg" />
</div>

<div class="slideshow right_part>
    <img src="image_un.jpg" />
    <img src="image_deux.jpg" />
    <img src="image_trois.jpg" />
</div>

<div class="slideshow right_part>
    <img src="image_uno.jpg" />
    <img src="image_dos.jpg" />
    <img src="image_tres.jpg" />
    <img src="image_cuatro.jpg" />
    <img src="image_cinco.jpg" />
    <img src="image_seis.jpg" />
</div>

的CSS

.right_part {
       grid-area: rightpart;
       place-self: center;
       height: 100vh;
       display: flex;
       align-items: center;
       max-width: calc(100vw - 500px);
 }

.slideshow img {
       position: absolute;
       display: inline-block;
       max-width: calc(100vw - 500px);
       max-height: 90vh;
       margin: auto;
       align-self: center;
       opacity: 0;
       transform: translateX(-50%);
       -webkit-transition-duration: 0.5s;
       transition-duration: 0.5s;     
 }

 .slideshow {
       overflow: hidden;
 }

 .slideshow img.active {
       opacity: 1;
 }
罗科·C·布尔扬

$('.active')将以DOM中的每个.active为目标,而您并不需要那样。
您只需要this参考:

jQuery(function($) { // DOM ready

  const $slideshow = $('.slideshow');
  $slideshow.find("img:first").addClass('active');
  
  $slideshow.on('click', function() {
    const $actv = $('.active', this); // "active" of THIS!
    const $next = $actv.next()[0] ? $actv.next() : $actv.siblings().first()
    $actv.removeClass('active');
    $next.addClass('active');
  });
  
});
.slideshow {
  position: relative;
  height: 60px;
  width: 60px;
}

.slideshow img {
  position: absolute;
  top: 0;
  opacity: 0;
  transition: 0.5s;
}

.slideshow img.active {
  opacity: 1;
}
<div class="slideshow">
  <img src="//placehold.it/60x60/0bf?text=1" />
  <img src="//placehold.it/60x60/f0b?text=2" />
  <img src="//placehold.it/60x60/fb0?text=3" />
  <img src="//placehold.it/60x60/0bf?text=4" />
</div>

<div class="slideshow">
  <img src="//placehold.it/60x60/0bf?text=1" />
  <img src="//placehold.it/60x60/f0b?text=2" />
  <img src="//placehold.it/60x60/fb0?text=3" />
</div>

<div class="slideshow">
  <img src="//placehold.it/60x60/0bf?text=1" />
  <img src="//placehold.it/60x60/f0b?text=2" />
  <img src="//placehold.it/60x60/fb0?text=3" />
  <img src="//placehold.it/60x60/0bf?text=4" />
  <img src="//placehold.it/60x60/bf0?text=5" />
  <img src="//placehold.it/60x60/b0f?text=6" />
</div>

<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在同一页面上使用多个jquery幻灯片切换

来自分类Dev

如何在同一页面上放置两个幻灯片框?

来自分类Dev

如果更改幻灯片项目,则React-slick滑块会停留在同一页面上

来自分类Dev

如何在同一页面上的图库缩略图和特定幻灯片图像之间切换?

来自分类Dev

在同一页面和 jquery 上具有相同类的多个幻灯片

来自分类Dev

同一页上有2张幻灯片

来自分类Dev

一页中的多个幻灯片

来自分类Dev

制作幻灯片以转到下一页

来自分类Dev

一页上有多个 JS 幻灯片

来自分类Dev

一页上有多个幻灯片

来自分类Dev

验证同一页面上的多个表单

来自分类Dev

同一页面上有多个Slickgrid

来自分类Dev

同一页面上的相对锚标签

来自分类Dev

多个计算,显示在同一页面上

来自分类Dev

同一页面上的多个ClojureScript文件

来自分类Dev

在同一页面上使用Browserify和RequireJS?

来自分类Dev

同一页面上的表单发布无需刷新

来自分类Dev

在同一页面上显示内容

来自分类Dev

id值在同一页面上获取php

来自分类Dev

烧瓶-同一页面上的多个分页

来自分类Dev

从jQuery调用同一页面上的PHP文件

来自分类Dev

PHP在同一页面上发布

来自分类Dev

表单提交后留在同一页面上

来自分类Dev

同一页面上的多个模板

来自分类Dev

在同一页面上显示错误的PHP

来自分类Dev

在同一页面上设置多个表单/验证

来自分类Dev

同一页面上的多个不同CKeditor实例

来自分类Dev

同一页面上的多个AjaxLazyLoadPanel Wicket 8

来自分类Dev

同一页面上的用户控件的Multipul实例