网页背景图缓慢溶解变化

    思路其实很简单,用两个<img>元素作为背景图,一个显示另一个隐藏,定时交替变化即可。

    $("<img id='backgroundImage1' />").appendTo('body').css('opacity', '0');
    $("<img id='backgroundImage2' />").appendTo('body').css('opacity', '0');

    jQuery先引入两个<img>元素,透明度先都设为0,之后设好图片路径再让其中一个逐渐显示。

    setInterval(function()
    {
        var b1 = $('#backgroundImage1');
        var b2 = $('#backgroundImage2');
        
        if (b1.css('opacity') == '1')
        {
            b1.fadeTo(800, 0);
            b2.attr('src', imgsrc+num+'.jpg').fadeTo(800, 1);
        }
        else 
        {
            b2.fadeTo(800, 0);
            b1.attr('src', imgsrc+num+'.jpg').fadeTo(800, 1);
        }
    }, changeTime);
    用setInterval函数定时执行,变化时让当前背景fadeTo(0),同时改变另一个<img>的路径后fadeTo(1),如此即有溶解变化的效果。


    加上背景图片序数的随机产生后,整个函数代码如下,放在一个通用的js文件里,在需要调用的页面引入即可:

    //背景图片持续渐变 (图片路径,图片总数,变化间隔时间)
    function bgChanging(imgsrc, sumOfBg, changeTime)  
    {
        var lastnum = randomBg(0);  //上一个背景序数
        $("<img id='backgroundImage1' />").appendTo('body').css('opacity', '0');
        $("<img id='backgroundImage2' />").appendTo('body').css('opacity', '0');
        //显示背景
        $("#backgroundImage1").attr('src', imgsrc+lastnum+'.jpg').fadeTo(300, 1);


        setInterval(function()
        {
            var b1 = $('#backgroundImage1');
            var b2 = $('#backgroundImage2');
            lastnum = randomBg(lastnum);
            
            if (b1.css('opacity') == '1')
            {
                b1.fadeTo(800, 0);
                b2.attr('src', imgsrc+lastnum+'.jpg').fadeTo(800, 1);
            }
            else 
            {
                b2.fadeTo(800, 0);
                b1.attr('src', imgsrc+lastnum+'.jpg').fadeTo(800, 1);
            }
        }, changeTime);


        //随机返回背景序数
        function randomBg(lastnum)
        {
            var randomnum = Math.ceil(Math.random()*sumOfBg);
            //防止生成的数字跟原背景序数一样
            while (randomnum == lastnum)
                randomnum = Math.ceil(Math.random()*sumOfBg);
            return randomnum;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值