使用 jquery 动态更改 css 文件中的静态颜色
P粉459440991
P粉459440991 2024-03-19 23:24:43
0
1
312

我有多个按钮,并且我有一个名为 bg 的类。在 CSS 文件中,我设置了该 bg 类的样式,但同时,我希望能够从 JS 文件动态更改其颜色。背景只有一种颜色,但我可以制作我想要的不同颜色,例如,颜色代码来自 API(红色代表 test1,黄色代表 test2 等)。我想使用出现的任何代码。比如去test2页面,那么背景是黄色的。我可以通过在 css 文件中创建类 test1 和 test2 来做到这一点,但它没有用,因为可能有数百个页面,使用 API 中的颜色代码比添加它们的麻烦更符合逻辑对 css 文件加一。

$('.bg').click(function(){
    $(this).unbind('mouseenter mouseleave');
  $('.bg').removeClass('active');
  $('.bg.active').css('background','yellow');
  $(this).addClass('active');
}).hover(
  function(){
    $(this).css({
      'border-color': '#4000a1',
      'background': 'blue'
    });
  },
  function(){
    $(this).css({
        'border-color': '#4000a1',
        'background': 'transparent'
      });
});
.bg{
  border: 2px solid #4000a1;
  background: gray;
  width: 200px;
  height: 150px;
  margin-bottom: 20px;
}

.bg.active{
  background: red;
}

.bg:hover{
  background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='bg'></div>
<div class='bg'></div>

我尝试了类似的操作,但似乎悬停工作正常,但单击时它保持固定,但我只希望其中一个保持活动状态。另外,在我的原始文件中,addClass和removeClass是在另一个文件中完成的,并且正确地只有一个活动类,但样式不会改变。

我希望我能正确解释我的问题。

P粉459440991
P粉459440991

全部回复(1)
P粉684720851

我不确定您想要的确切结果,但我对您的代码做了一些更改,因此一次只有一个活动背景。我也简化了。您将鼠标悬停在 CSS 上,将鼠标悬停在 JavaScript 上……为了简单的事情,继续将鼠标悬停在 CSS 文件上。使用 JavaScript 处理点击事件。

$('.bg').click(function(){
  $('.bg').css({backgroundColor: ''});
  $(this).css({backgroundColor: $(this).data('color')});
})
.bg{
  border: 2px solid #4000a1;
  background: gray;
  width: 200px;
  height: 150px;
  margin-bottom: 20px;
}

.bg:hover{
  background: red;
}
sssccc
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!