javascript - 使用 setInterval 延迟循环的代码

标签 javascript jquery animation gallery

我正在尝试制作一个图像推子,可以循环显示多个图像(此处为 3 个)。我让这个函数循环并淡入正确的图像,它可以工作,淡出一个图像,同时淡入下一个图像,这样就没有空白区域。除了当函数到达数组末尾时,它会淡出数组中的最后一个图像,然后循环回来并再次淡入第一个图像,从而创建第二个空白空间。

Javscript

<script type="text/javascript">
        var img_arr = [
            '#img1',
            '#img2',
            '#img3'
        ]
        var i = 0;
        arr_length = img_arr.length;
        //fade function
        function fade_gal() {
            $(img_arr[i])
                .animate(
                    {opacity: '1.0' }, 500
                );
            $('.img').delay(3000).animate({opacity: 0.0}, 500);
            i = i + 1;
            if (i == arr_length) {
                i = 0;
            }
        }
        $(document).ready(function img_gallery() {
            //initial function
            fade_gal();
            //set function interval
            setInterval( function() {fade_gal()}, 3500);
        })
    </script>


html

<div id="scroller">
            <img src="../../images/1.jpg" alt="img1" width="300px" id="img1" class="img"/>
            <img src="../../images/2.jpg" alt="img1" width="300px" id="img2" class="img"/>
            <img src="../../images/3.jpg" alt="img1" width="300px" id="img3" class="img"/>
        </div>

最佳答案

你的代码让我感到困惑,并不是说它是错误的。我无法弄清楚时间。

这是我的版本:( jsFiddle )

var img_arr = [
    '#img1',
    '#img2',
    '#img3'
    ];



arr_length = img_arr.length;
var i = arr_length;
//fade function

$('.img').css('opacity', 0.0);

function fade_gal() {

    $(img_arr[(i-1)%arr_length]).animate({opacity: 0.0}, 500);
    $(img_arr[i%arr_length]).animate({opacity: 1.0}, 500);

    i++;
}

$(document).ready(function () {
    //initial function
    fade_gal()

    //set function interval
    setInterval(function() {
        fade_gal()
    }, 3500);
})​

关于javascript - 使用 setInterval 延迟循环的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663557/

相关文章:

javascript - jQuery:动画序列图像

javascript - 使用 JS/Jquery 和 SVG 来显示/隐藏 <object> SVG 中的元素

javascript - ajax 调用后更新动态生成的列表项(使用 PHP 生成)

iphone - 如何像iOS 7 iPad App Store一样同时翻转和放大一个UIView?

javascript - 需要在 jQuery 对话框标题中显示 &,但它正在转换为 &

javascript - 如果我包含 Prototype 和 jQuery,为什么内联 jQuery 冲突(超过使用 $)但不包含 jQuery 文件?

javascript - 让div在页面加载时不显示,然后在函数运行时显示 block

javascript - 通过正则表达式 javascript 拆分字符串

Javascript 选择具有包含单词的属性的 anchor

javascript - 正则表达式禁止特定序列中的某些字符