【问题标题】:Fade background image in and out with jQuery?使用jQuery淡入淡出背景图像?
【发布时间】:2011-04-03 23:16:50
【问题描述】:

到目前为止,我已经尝试了很多事情,效果如下,但没有成功:

<script type="text/javascript">
var x = 0;

while (true) {
    /* change background-image of #slide using some variation
    of animate or fadeIn/fadeOut with or without setTimeout */
    x++;
}
</script>

有什么想法吗?

【问题讨论】:

  • 我不认为这是可以做到的,因为background-image 不支持任何类型的衰落。您必须为此使用普通图像

标签: javascript jquery html css background


【解决方案1】:

您可以淡化背景颜色,但不能淡化背景图像。解决此问题的方法是将您的图像设置为&lt;img&gt; 标签并默认隐藏它们display:none;。给你的图片position:absolutez-index:-1,这样它们就像背景一样,在其他所有东西的后面。

这是一个一个接一个褪色的图像的快速示例。

HTML

<img src=".." />
<img src=".." />

CSS

img{
 position:absolute;
 z-index:-1;
 display:none;
}

jQuery

function test() {
    $("img").each(function(index) {
        $(this).hide();
        $(this).delay(3000* index).fadeIn(3000).fadeOut();
    });
}
test();

http://jsfiddle.net/RyGKV/查看工作示例

【讨论】:

  • 太棒了,谢谢!知道如何让这个循环无限循环吗?
  • 非常感谢,太棒了!
【解决方案2】:

您可以淡化背景图像! 进进出出!

jQuery:

$('#yourdiv').animate({opacity: 0}, 0).css("background-image", "url(image.jpeg)").animate({opacity: 1}, 2500);

编辑:

这将使整个 div 褪色,而不仅仅是背景图像。

【讨论】:

  • 这会淡化整个 div,而不仅仅是背景图像。
【解决方案3】:

虽然您不能直接淡入background-image。您可以淡入仅包含 background-image...的单独元素...

Here's an example

【讨论】:

    【解决方案4】:

    我来到这里是因为我正在寻找基于 &lt;select&gt; 选项更改的背景图像褪色的解决方案。我将我已经写过的内容与上面 Hussein 的 jsfiddle 结合起来,提出了这个jsfiddle.net/v4BMC/

    这最初将两个相同的图像堆叠在一起。当&lt;select&gt; 改变时,顶部图像的样式属性被移除,底部图像的src 被改变并且顶部图像淡出以显示底部图像。 (上图以style="display:none"结尾,需要在操作开始时去掉,否则不起作用。)

    希望这对其他人有用,并且不要因为太无关紧要而被包括在这里!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多