首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重写这个代码(“setTimeout-s”的意大利面)?

如何重写这个代码(“setTimeout-s”的意大利面)?
EN

Stack Overflow用户
提问于 2014-09-12 11:26:28
回答 1查看 46关注 0票数 0

请帮我重写这张setTimeout的意大利面

这是一个动画:选定的图像以1秒的间隔突出显示

代码语言:javascript
复制
var $pic_1 = $('.pic-1');
        var $pic_13 = $('.pic-13');
        var $pic_4 = $('.pic-4');
        var $pic_9 = $('.pic-9');
        var $pic_12 = $('.pic-12');
        var $pic_19 = $('.pic-19');
        var $pic_11 = $('.pic-11');
        var $pic_20 = $('.pic-20');

        function blinkImages() {
            $pic_1.css('opacity', 1);
            setTimeout(function() {
                $pic_1.css('opacity',.3);
                $pic_13.css('opacity', 1);
                setTimeout(function() {
                    $pic_13.css('opacity',.3);
                    $pic_4.css('opacity', 1);
                    setTimeout(function() {
                        $pic_4.css('opacity',.3);
                        $pic_20.css('opacity', 1);
                        setTimeout(function() {
                            $pic_20.css('opacity',.3);
                            $pic_9.css('opacity', 1);
                            setTimeout(function() {
                                $pic_9.css('opacity',.3);
                                $pic_12.css('opacity', 1);
                                setTimeout(function() {
                                    $pic_12.css('opacity',.3);
                                    $pic_19.css('opacity', 1);
                                    setTimeout(function() {
                                        $pic_19.css('opacity',.3);
                                        $pic_11.css('opacity',1);
                                        setTimeout(function() {
                                            $pic_11.css('opacity',.3);
                                            blinkImages();
                                        },1000);
                                    },1000);
                                },1000);
                            },1000);
                        },1000);
                    },1000);
                },1000);
            }, 1000);
        }
        blinkImages();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 11:37:24

不如像这样

代码语言:javascript
复制
var seq=['.pic_1','.pic_13','.pic_4','.pic_20','.pic_9','.pic_12','.pic_19','.pic_11']
var cur = seq.shift();
$(cur).css('opacity', 1);
setInterval(function() {
    $(cur).css('opacity', 0.3);
    seq.push(cur);
    cur = seq.shift();
    $(cur).css('opacity', 1);
}, 1000);

在第一个循环中可能有一个故障,但是您可能能够用该基本代码解决它。

在我看来,它不应该离你所拥有的不远。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25807225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档