当前位置: 首页 > 知识库问答 >
问题:

使用jquery更改悬停时的背景色

郭俊拔
2023-03-14

因为我使用可变颜色的按钮,我需要添加内联css。悬停颜色是其他变量。我不能在内联css上添加悬停选择器,所以我必须使用js。我试着用. hover()来做,但是当我悬停按钮时,两种颜色都消失了。

代码:

$('.btn').hover( function() {
    var $hover = $('.btn').attr('data-hover');
    $(this).css( "background", $hover );
}, function() {
    var $color = $('.btn').attr('data-color');
    $(this).css( "background", $color );
});

HTML:

<button class="btn wpb_btn-small" style="background:#00aff0;" data-color="#00aff0" data-hover="#0cbbfc">Button</button>

共有2个答案

颜光临
2023-03-14

您应该使用mouseenter和mouseleave事件:

http://api.jquery.com/mouseenter/

HTML

 <button class="btn wpb_btn-small" style="background:#00aff0;" data-color="#00aff0" data-hover="#0cbbfc">Button</button>

JS

$(function() {
    $('.btn').mouseenter(function() {
        var bg = $(this).attr('data-hover');
        $(this).css( "background", bg );
    });

    $('.btn').mouseleave(function() {
        var bg = $(this).attr('data-color');
        $(this).css( "background", bg );
    });
});

现场演示

更新:事实上,使用悬停事件更好(参考投票结果:

逄嘉熙
2023-03-14
$('.btn').hover( function() {
    var $hover = $(this).attr('data-hover');   // <-- change to this , there are many .btn
    $(this).css({ "background-color" : $hover });  // minor change
}, function() {
    var $color = $(this).attr('data-color');  // same change
    $(this).css({ "background-color" : $color });  // minor change here
});

$('. btn')返回一个数组-如果页面上有更多的数组,请使用$(this)

它们都应该是“背景色”或“背景”,确保使用我上次编辑的相同内容

你甚至可能会发疯,把一切都放在一行

$(this).css({ "background-color" : $(this).attr('data-hover') });
 类似资料:
  • 问题内容: 我正在尝试将 鼠标悬停在div的背景颜色上 。 div {background:white;} div a:hover {background:grey; 宽度:100%; 显示:块; 文字修饰:无;} 只有 div内的 链接 获得背景色 。 如何使 整个div获得该背景色? 谢谢 编辑: 如何使整个div充当链接-当您单击该div上的任意位置时,将您带到某个地址。 问题答案: 当鼠标

  • 问题内容: 我有一组标签,这些标签的rgba背景颜色不同,但alpha相同。是否可以编写单个CSS样式来仅更改rgba属性的不透明度? 代码的简单示例: 和样式 我想做的是编写一种样式,当将鼠标悬停在其上时会更改不透明度,同时保持颜色不变。 就像是 问题答案: 现在可以使用自定义属性: 如果自定义属性不是一个选项,请参见下面的原始答案。 不幸的是,不,您必须为每个单独的类再次指定红色,绿色和蓝色值

  • 问题内容: 我有此jquery代码,可在单击时更改背景图像: 但是,它没有改变。有什么我想念的吗? 问题答案: 您需要包括该属性的一部分。

  • 问题内容: 这是一个常见的问题。它几乎总是被关闭,作为以下问题的重复项:是否有CSS父选择器? 重复项很好地指出了CSS不能定位父元素。但是,它对于原始问题几乎没有提供任何指导,而原始问题可能会在XY问题中陷入困境。 在这种情况下… 悬停孩子时如何更改父母的背景颜色? …至少有一种CSS解决方案可以解决该问题。 问题答案: 尽管无法使用CSS选择父元素,但是您可以使用另一种方法来完成任务。 您希望

  • 问题内容: 好的,所以我已经通过PHP动态生成了图像,因此不一定得到相同的图像。我花了最后四个小时扫描互联网,并尝试使用jQuery和/或CSS做无数次尝试,并且提出了以下可行的建议。 Market.png具有透明背景。 现在,以上工作。鼠标悬停时,它显示Market.png,透明背景部分为tile_4.jpg,鼠标移出时为tile_4.jpg。 我想知道的是:有什么方法可以使用jQuery或CS

  • 问题内容: 我需要一个包含图像的菜单,当有人将鼠标悬停在菜单上时,图像应该会更改。 HTML CSS 我面临的问题是,当我将 鼠标悬停 在菜单项周围时,要显示在悬停上的图像显示 在 旧图像 的背面 。此外,显示的悬停背景图像的宽度和高度 很小 。请帮忙。谢谢![在此处输入图片描述] [1] 问题答案: 将此代码放在结束body标签之前, 将课程首页放置在标签中。做完了 完美运作。