稳定背景移动

时间:2019-03-23 11:28:30

标签: javascript

我是JS的菜鸟,但是我必须在某些项目中使用它。目前,我找回了脚本的源代码(不是我的)。 它可以使JS具有动人的背景。

如果背景中有多个图像,则脚本会建立交叉淡入淡出。

这是我目前拥有的http://jaouani.fr/pickybanshees/

即使脚本允许更多图像,我的背景图像也只有一张。

因此,我对gb02和bg03图像的行进行了注释。

结果不再是淡入淡出。可以,这就是我想要的。

// Slideshow Background.
    (function() {

        // Settings.
            var settings = {

                // Images (in the format of 'url': 'alignment').
                    images: {
                        'images/bg01.jpg': 'center',
                        //'images/bg02.jpg': 'center',
                        //'images/bg03.jpg': 'center'
                    },

                // Delay.
                    delay: 6000

            };

        // Vars.
            var pos = 0, lastPos = 0,
                $wrapper, $bgs = [], $bg,
                k, v;

        // Create BG wrapper, BGs.
            $wrapper = document.createElement('div');
                $wrapper.id = 'bg';
                $body.appendChild($wrapper);

            for (k in settings.images) {

                // Create BG.
                    $bg = document.createElement('div');
                        $bg.style.backgroundImage = 'url("' + k + '")';
                        $bg.style.backgroundPosition = settings.images[k];
                        $wrapper.appendChild($bg);

                // Add it to array.
                    $bgs.push($bg);

            }

        // Main loop.
            $bgs[pos].classList.add('visible');
            $bgs[pos].classList.add('top');

            // Bail if we only have a single BG or the client doesn't support transitions.
                if ($bgs.length == 1
                ||  !canUse('transition'))
                    return;

            window.setInterval(function() {

                lastPos = pos;
                pos++;

                // Wrap to beginning if necessary.
                    if (pos >= $bgs.length)
                        pos = 0;

                // Swap top images.
                    $bgs[lastPos].classList.remove('top');
                    $bgs[pos].classList.add('visible');
                    $bgs[pos].classList.add('top');

                // Hide last image after a short delay.
                    window.setTimeout(function() {
                        $bgs[lastPos].classList.remove('visible');
                    }, settings.delay / 2);

            }, settings.delay);

    })();

但是,背景在右边,然后在左边。我想让它在准确的时刻停止。我不希望背景偏左。

有任何想法编辑此脚本吗?

0 个答案:

没有答案