javascript - 将鼠标悬停在父 div 上时同时更改图像和标题

标签 javascript jquery css hover

我需要能够在用户将鼠标悬停在父 div 上时更改我的标题和图片的颜色。它单独工作意味着当我将鼠标悬停在 id="cf"上时,图片会发生变化,但标题不会发生变化,反之亦然,但不会同时发生。任何帮助将不胜感激。

$(document).ready(function(){
  $("#cf img").hover(function(){
    $(this).css("-webkit-filter", "grayscale(0)");
  }, function(){
    $(this).css("-webkit-filter", "grayscale(1)");
  });

  $(".blue-bar-info").hover(function(){
    $(this).css("background", "pink");
  }, function(){
    $(this).css("background", "blue");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cf">
Picture
<div id="blue-bar" class="blue-bar-info">
    <div class="inner"> 
	    <h4>Title</h4> 
	    <span>Sub Title</span>
    </div> 
</div>
</div>

最佳答案

为此,我建议您改用 CSS。它的设计目的是为了改变 UI,性能比 JS 好得多,并且避免了页面加载时可能出现的 FOUC。

为此,您可以设置默认样式,然后在 :hover 伪选择器中覆盖它们,如下所示:

#cf img { 
  -webkit-filter: grayscale(1); 
  width: 150px;
  height: 150px;
}
#cf:hover img { -webkit-filter: grayscale(0); }

#cf .blue-bar-info { background-color: pink; }
#cf:hover .blue-bar-info { background-color: blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cf">
  <img src="https://i.imgur.com/KwkmSK4.jpg"/>
  <div id="blue-bar" class="blue-bar-info">
    <div class="inner">
      <h4>Title</h4>
      <span>Sub Title</span>
    </div>
  </div>
</div>

关于javascript - 将鼠标悬停在父 div 上时同时更改图像和标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45327961/

相关文章:

javascript - 如何获取已打乱的对象数组的当前元素

javascript - 使用 jQuery 获取委托(delegate)事件中被点击的元素

javascript - jQuery Sortable 无法与 Twitter 嵌入推文一起使用

javascript - bootstrap-datepicker 中的 beforeShowDay 标题不起作用

javascript - this.dataset.X 返回 MouseEvent 对象

javascript - 如果 ECMA 6 是标准,那么为什么主要浏览器不支持简单脚本?

html - CSS 绝对位置定位于兄弟而不是父

c# - CSS 在页面回发 ASP.NET 期间被删除了一段时间

javascript - 实现显示更多 - 在页面上显示更少的文本

javascript - 如何使用 jquery 每 5 秒更改元素的背景颜色?