【问题标题】:Grayscale double hover effect灰度双悬停效果
【发布时间】:2017-05-13 08:30:17
【问题描述】:

我正在努力为我网站的社交媒体带来影响。所有社交图标都在 a 内,并且 div 具有悬停效果filter: grayscale(100%)。我想要做的是在我悬停的社交图标上将过滤器重置为filter: grayscale(0%)(再次为其着色)。我尝试了很多东西,但它似乎是错误或至少对于 webkit。

.social:hover :not(h3) {
  filter: grayscale(100%);
  opacity: 0.8;
  -webkit-transition: all 300ms linear;
}

.social img {
  width: 32px;
  height: 32px;
}

.facebook img:hover {
  filter: grayscale(%);
  opacity: 1;
}
<div class="social">
  <h3>Stay connected!</h3>
  <a target="_blank" class="btn facebook" href="https://www.facebook.com/LaDulceriaCuracao/"><img src="../Media/SocialMedia/facebook.gif"></a>
  <a target="_blank" class="instagram" href="https://www.instagram.com/dulceriacuracao/"><img src="../Media/SocialMedia/instagram.gif" /></a>
  <a target="_blank" class="twitter" href="https://twitter.com/La_Dulceria1"><img src="../Media/SocialMedia/twitter.gif" /></a>
</div>

【问题讨论】:

  • 我知道我没有解释清楚。我想要的是,通过将光标移到社交媒体(Class="social")容器上,所有图标都变为灰色,除了正好位于光标处的图标。不知道怎么解释。。

标签: html css hover grayscale


【解决方案1】:

这样的?

小提琴

https://jsfiddle.net/Hastig/omdq64n5/

body {
  width: 100%;
  margin: 0;
}
.container {
  display: flex;
  justify-content: center;
  width: 100%;
  font-size: 100px;
}
.item {
  display: flex;
  justify-content: center; 
  flex: 1;
}
i {
  display: flex;
  justify-content: center;
  color: red;
}
.container:hover i {
  filter: grayscale(100%);
}
.item:hover i {
  filter: grayscale(0%);
}
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="container">
  <div class="item"><i class="fa fa-picture-o"></i></div>
  <div class="item"><i class="fa fa-picture-o"></i></div>
  <div class="item"><i class="fa fa-picture-o"></i></div>
</div>

【讨论】:

【解决方案2】:

为什么不直接删除整个声明?

.social:hover :not(h3){ filter: grayscale(100%); opacity: 0.8; -webkit-transition : all 300ms linear; }

您也可以将其注释掉 /* code to remove here */

【讨论】:

  • 我知道我没有解释清楚。我想要的是,通过将光标移到社交媒体(Class="social")容器上,所有图标都变为灰色,除了正好位于光标处的图标。不知道怎么解释。。
  • 如何代替.facebook img:hover { filter: grayscale(%); opacity: 1; } 使用.facebook a:hover { filter: grayscale(%); opacity: 1; }
  • 我试过了,但它不起作用,这似乎是一个 webkit 错误,因为我用资源管理器打开了我的网站并且过滤器重置工作正常。
【解决方案3】:

您可以像这样从社交悬停类中删除过滤器行代码:

.

social:hover :not(h3){
/*filter: grayscale(100%);*/
opacity: 0.8;
-webkit-transition : all 300ms linear;

}

【讨论】:

  • 我知道我没有解释清楚。我想要的是,通过将光标移到社交媒体(Class="social")容器上,所有图标都变为灰色,除了正好位于光标处的图标。不知道怎么解释。。
【解决方案4】:

你可以这样做:

.social:hover {
  -webkit-transition: all 300ms linear;
}

.social:hover > div {
  opacity: 0.5;
}

.social:hover > div:hover {
  opacity: 1.0;
}
<section class="social">
  <h3>Stay connected!</h3>
  <div><a target="_blank" class="facebook" href="https://www.facebook.com/LaDulceriaCuracao/"><img src="../Media/SocialMedia/facebook.gif"></a></div>
  <div><a target="_blank" class="instagram" href="https://www.instagram.com/dulceriacuracao/"><img src="../Media/SocialMedia/instagram.gif" /></a></div>
  <div><a target="_blank" class="twitter" href="https://twitter.com/La_Dulceria1"><img src="../Media/SocialMedia/twitter.gif" /></a></div>
</section>

【讨论】:

  • 是的,这就是我想要的效果,但有灰度
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2021-11-12
  • 1970-01-01
  • 2011-06-20
  • 2015-01-21
  • 2011-06-02
相关资源
最近更新 更多