如何在 Jquery 中使用 .css 更改背景图像时添加淡入效果

发布于 2024-10-18 10:35:53 字数 354 浏览 6 评论 0原文

嘿伙计们,我尝试在 Jquery 中使用 .css 更改背景图像时添加淡入淡出效果 我对java不太了解,希望有人能帮助我!

更改CSS背景图像的代码在这里非常简单:

$(document).ready(function(){
$("#button01").click(function () {
      $("#content_wrapper").css({backgroundImage : 'url(image/staff/shinji.jpg)' } );
        });
    }); 

它就像一个图像库,我只是在CSS背景图像中显示它 一切正常,但我想知道是否可以添加淡入或淡入效果。

Hey guys, Im trying to add a fadein effect while changing my background image using .css in Jquery
I dont really know much about java, hoping someone can help me out here!

The code for changing css background image is pretty simple here:

$(document).ready(function(){
$("#button01").click(function () {
      $("#content_wrapper").css({backgroundImage : 'url(image/staff/shinji.jpg)' } );
        });
    }); 

It's like a image gallery, Im just showing it in css background image
everything works fine, but I was wondering if it's possible to add the fadeIn or fade-to effect.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

摘星┃星的人 2024-10-25 10:35:53

您无法将一张图像淡入另一张图像,只能将纯色背景色等属性淡入淡出。

您可以做的是淡化包含图像的元素的不透明度。

使用这种方法,为了达到您想要的效果,您需要做的就是将 2 个图像一个叠放在另一个之上。

然后您可以淡出其中一个,同时淡入另一个。

比如:

// write a little function to do a toggling fade
jQuery.fn.fadeToggle = function(speed, easing, callback) { 
   return this.animate({opacity: 'toggle'}, speed, easing, callback); 
};

// make sure one layer is marked as active and shown and the other is hidden
$("#layer1").show();
$("#layer2").addClass('inactive').hide();

// then you can do this:
$("#button01").click(function () {
    $("#layer1").fadeToggle('slow').toggleClass('inactive');
    $("#layer2").fadeToggle('slow').toggleClass('inactive');
    // then set the new background image for the hidden layer
    $(".inactive").css({backgroundImage : 'url(image/staff/shinji.jpg)' } );
};

可能不是一个很好的解决方法,但我认为它应该有效。

You can't fade one image to another, only properties such as solid background colours.

What you can do is fade the opacity of an element containing an image.

Using this method, what you will have to do in order to achieve the effect you want is to have 2 images one on top of the other.

Then you can fade out one while fading in the other.

So something like:

// write a little function to do a toggling fade
jQuery.fn.fadeToggle = function(speed, easing, callback) { 
   return this.animate({opacity: 'toggle'}, speed, easing, callback); 
};

// make sure one layer is marked as active and shown and the other is hidden
$("#layer1").show();
$("#layer2").addClass('inactive').hide();

// then you can do this:
$("#button01").click(function () {
    $("#layer1").fadeToggle('slow').toggleClass('inactive');
    $("#layer2").fadeToggle('slow').toggleClass('inactive');
    // then set the new background image for the hidden layer
    $(".inactive").css({backgroundImage : 'url(image/staff/shinji.jpg)' } );
};

Probably not a beautiful way of going about it, but I think it should work.

野稚 2024-10-25 10:35:53

对于淡入淡出效果,您需要让两个图像在某种程度上同时可见。我建议你使用2层。底部将始终包含您想要淡出的图像。顶部的图层将包含将变得透明的图像。

您将无法在容器内放置任何带有淡入淡出背景的内容,或者淡入淡出效果也会影响内容。

然后使用带有效果的 jQuery,执行以下操作:

$('#element').fadeOut('slow', function() {
    // Animation complete.
});

For the fade effect, you need to have both images visible to some degree at the same time. I suggest you use 2 layers. The bottom will always contain the image you want to fade out to. The layer on the top will contain the image which will become transparent.

You won't be able to have ANY content inside your container with the fading background, or the fade effect will also influence the contents.

Then using the jQuery with effects, do this:

$('#element').fadeOut('slow', function() {
    // Animation complete.
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文