jquery - 幻灯片放映在最后一张图像后停止

标签 jquery html css slideshow

我的幻灯片可以工作,但是当到达最后一张图像时,它会卡在那里并且不会继续,当我刷新页面时,它会再次从第一张图像开始并一直工作,直到到达最后一张图像。

HTML:

       <div class="slider">

        <img src="slide1_hamburger.jpg" class="slide_image slider_active"></img>
        <img src="slide2_eetzaal.jpg" class="slide_image"></img>
        <img src="slide3_carpaccio.jpg" class="slide_image"></img>

    </div>

CSS:

.slide_image {
    display: block;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    position: absolute;
    opacity: 0;
      transition: opacity 2s ease-in-out;
   -moz-transition: opacity 2s ease-in-out;
   -webkit-transition: opacity 2s ease-in-out;
}


.slider_active {
    opacity: 1;
    transition: opacity 2s ease-in-out;
   -moz-transition: opacity 2s ease-in-out;
   -webkit-transition: opacity 2s ease-in-out;
}

Jquery:

function slideSwitch() {
        var $slider_active = $('div.slider IMG.slider_active');
        var $next = $slider_active.next();    

        $next.addClass('slider_active');

        $active.removeClass('slider_active');
    }

    $(function() {
        setInterval( "slideSwitch()", 5000 );
});

有人知道为什么它停在最后一张图片上并且不会继续吗?提前致谢。

最佳答案

它在最后一个图像处停止,因为例程尝试获取不存在的 .next() 元素。

您需要添加一个检查来查看 $next 是否确实存在,如果不存在则返回到开头。像这样的东西:

function slideSwitch() {
    var $slider_active = $('div.slider IMG.slider_active');
    var $next = $slider_active.next();    

    if(!$next) {
        $next = $('div.slider IMG')[0];
    }

    $next.addClass('slider_active');

    $slider_active.removeClass('slider_active');
}

$(function() {
    setInterval( "slideSwitch()", 5000 );
});

关于jquery - 幻灯片放映在最后一张图像后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318080/

相关文章:

html - 边界半径和精彩的跨浏览器问题 - 简单修复?

css - 为输入类型 =“number” 中的任何类型的小数点分隔符获取无效样式

javascript - 如何让我的网页变慢?

jquery - Ajax 调用未命中 Controller 操作

javascript - 如何检查json对象是否为null?

javascript - LocalStorage noUiSlider 值 ||重要的! : (

javascript - 循环而不是许多 if 条件

javascript - 如何在一定尺寸后固定侧边栏?

jquery - 使用 Dynatable 插件更新表格

css 翻转错误