如何使用jquery更改css块的背景图像[重复]

Posted

技术标签:

【中文标题】如何使用jquery更改css块的背景图像[重复]【英文标题】:How to change background image of the css block using jquery [duplicate] 【发布时间】:2013-05-12 15:00:18 【问题描述】:
<style type="text/css">
            .RadWindow .rwWindowContent .radalert
            
                background-image:url("images/InfoImg.png"); 
            
        </style>

上面的css文件中的代码,我想改变上面css文件的背景图片, 当用户调用 Jquery 服装功能时,我想更改 rad alert 的背景图像。

【问题讨论】:

在相关说明中,三个类选择器?这可能会减慢页面渲染速度。 【参考方案1】:

试试这个简单的老式方法:

$(document).ready(function()
    $('.RadWindow .rwWindowContent .radalert')
    .css('background-image', "url('images/InfoImg.png')");
)

根据评论请求,您可以使用 jQuery 的 .toggleClass() 方法。为了发挥最大优势,在 css 中简单地设置 2 个交替背景类。在加载时将一个分配给您的元素(将其写入 html)并准备好另一个。然后,在“动作”上,使用 toggleClass 交替两个类!

Working Example

它的工作原理很简单。首先设置你的 CSS:

<style type="text/css">
    .bg-type-01 
        background-image: url("some url");
    
    .bg-type-02 
        background-image: url("another url");
    
</style>

然后将您的第一个类应用于您的元素:

<div class="radalert bg-type-01"> ... </div>

最后,用jQuery写一个非常简单的JS!

<script type="text/javascript">
    $(function() 
        $("something").on("click", function(e) 
            $(".radalert").toggleClass("bg-type-01 bg-type-02");
        );
    )
</script>

【讨论】:

所有好的答案,但我必须指出,拥有 2 个类为编辑器提供了“切换”能力,而无需一堆额外的代码 选择器与OP的选择器不同:类之间应该有空格(祖先选择器)而不是逗号(其他选择器)... 我认为它们是差异类,抱歉,我已经编辑了这些,谢谢 @Gautam3164 好吧... 你也可以考虑toggleClass..??【参考方案2】:

使用两个类:

<style type="text/css">
    .RadWindow .rwWindowContent .radalert 
         background-image:url("images/InfoImg.png"); 
    
    .RadWindow.newbg .rwWindowContent .radalert 
         background-image:url("images/other_image.png"); 
    
</style>

JS:

$('.RadWindow').addClass('newbg');    // adds the new background
$('.RadWindow').removeClass('newbg'); // removes the new background
$('.RadWindow').toggleClass('newbg'); // toggles the new background

【讨论】:

很好的答案,你真的应该提到 jQuery 的.toggleClass() 能力【参考方案3】:

假设您必须将图像的 url 更改为“images/InfoImg2.png” 您可以使用代码选项 1-

jQuery -

var newUrl = "images/InfoImg2.png";
$(".radalert").css(
    backgroundImage : 'url("'+newUrl+'")'
);

CSS -

RadWindow .rwWindowContent .radalert2
  background-image:url("images/InfoImg2.png"); 

jQuery -

$(".radalert").addClass("radalert2");

【讨论】:

这些都是很好的答案,但最好的建议是我必须选择自己想的 2 类【参考方案4】:

试试

$('.RadWindow .rwWindowContent .radalert').css('background-image', 'images/new.png')

【讨论】:

大声笑,你迟到了,但无论如何,这里有一点

以上是关于如何使用jquery更改css块的背景图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery在CSS中设置背景图像[重复]

如何在html对象元素中更改svg位置的背景颜色[重复]

将背景图像动画到另一个 - CSS/JQuery [重复]

使用 jquery 更改背景图像

使用 jQuery 更改多个背景图像

悬停时无法更改css中的背景图像[重复]