用jQuery更改div背景

时间:2011-11-24 14:19:04

标签: javascript jquery html css

我需要用其他图像更改背景div。

我首先想要的是,myDiv在css样式上加载第一个背景图像,然后在延迟的2/3秒内添加淡入淡出效果来改变背景图像。

如果可能的话,我需要用jQuery做到这一点。

5 个答案:

答案 0 :(得分:2)

您不能直接在背景图像上进行淡入淡出或任何其他过渡。但是,您可以添加另一个div,其中第二个图像作为背景,fadeOut()是原始图像。

答案 1 :(得分:1)

答案 2 :(得分:0)

这不是淡入淡出效果,但你可以像这样延迟和改变背景图像。

function changebackground(){
    $('#divID').css("background-image", "url(/myimage.jpg)");  
}


setTimeout(function() { changebackground();}, 3000);

答案 3 :(得分:0)

这可能是一个很好的解决方法 http://jquery.malsup.com/cycle/

在你用循环定位在顶部div之后它可以是你的背景 - cycle.js给你很多选择。

如果您只想在bacground中旋转图像,则必须首先预加载该图像,然后必须将其放在其他div中,以便两个div都可以设置动画。

答案 4 :(得分:0)

即使您添加了jQuery UI的所有功能,也不支持此功能。

你可以附加一个临时图像,绝对位于你想要改变背景的div内。让图像淡入,一旦它完全不透明,交换div的背景图像。但是,如果你有重复的背景,这将是有问题的。

var im1 = 'picture1.png';
var im2 = 'picture2.png';
$('#divID').css({'background-image': 'url("'+im1+'")', 'position': 'relative'});
$('#divID').on('click', function() {
    var img = $('<img />', {
        src: im2,
    }).css({
        position: 'absolute',
        top: 0,
        left: 0
    }).hide();

    $(this).append(img);
    img.fadeIn('slow', function() {
        $(this).parent().css('background-image', 'url("'+im2+'")');
        $(this).remove();
    });
});

当然,您应该将我脚本中包含的CSS移动到.css文件中,并使用类来代替更易读的代码。