【问题标题】:How do I create a fade in effect on a rotating background image using Jquery如何使用 Jquery 在旋转的背景图像上创建淡入效果
【发布时间】:2010-01-24 08:47:50
【问题描述】:

我目前正在使用一个小型 jquery 脚本在我正在为朋友的作品集网站创建的作品集网站上旋转背景图像,代码如下:

  counter = 1; 
    num_images = 9;
    dir = "IMAGE DIRECTORY URL";

    function rotateHeader() {


 var background_img = 'url(' + dir + '/image' + counter + '.gif)';

 jQuery('.category').css('background-image', background_img);  
 counter++; if (counter > num_images) counter = 1;

    }
    setInterval( "rotateHeader()", 5000 );

你可以在这里看到它的工作原理:

www.iamanatom.com/site/the-good

我想要做的是让图像和/或颜色淡入淡出。我想我必须预先加载图像才能做到这一点,然后在加载图片时添加某种淡入淡出属性。 我该怎么做?

【问题讨论】:

    标签: jquery css image-rotation


    【解决方案1】:

    这样的事情应该这样做

    var counter = 1, 
        num_images = 9,
        dir = "IMAGE DIRECTORY URL";
    
    function rotateHeader() {
    
        var background_img = 'url(' + dir + '/image' + counter + '.gif)';
    
        jQuery('.category').fadeOut(function() {
            jQuery(this).css('background-image', background_img).fadeIn();
        });  
        counter++; if (counter > num_images) counter = 1;
    }
    setInterval(rotateHeader, 5000 );
    

    首先我们淡出当前的背景图片,然后在回调函数中,改变背景图片,然后再淡入。你可能想要使用fadeOut()fadeIn()间隔来获得你想要的效果.我还更改了 setInterval() 以使用函数名称而不是要评估的字符串。

    【讨论】:

    • 好的,太棒了,非常感谢,这创造了淡入淡出效果但是现在我有另一个问题 - 如果你看看我的实现:www.iamanatom.com/site/the-good 你会看到整个页面淡入淡出,而不仅仅是背景图像。不知道该怎么办!
    • Ahhh 我想我知道为什么会这样 - 我试图操纵的元素是主体(我使用类别作为一个类,因为我只想要博客页面上的效果)。不幸的是,这个元素包裹着所有东西,所以它淡入了整个页面。我认为我的解决方案是创建一个绝对定位的 div,它可以动态获取我需要的类并且在主页元素之外......我们会看看这个作品
    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多