CSS 过渡到另一个 class img:hover
CSS Transition on another class img:hover
我有一个 class 具有此 :hover 效果,可赋予图像颜色。
我有这个单独的 class,它在 :hover 上显示“+”,但只有当我悬停这个 class 时。我想对一个 img:hover:
有两种 :hover 效果
img:hover 效果的代码。 (使用 b/w 过滤器)。
.og-grid li > a,
.og-grid li > a img {
border: none;
outline: none;
display: block;
position: relative;
-webkit-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.og-grid li > a,
.og-grid li > a img:hover{
-webkit-filter: grayscale(0%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}
+ 悬停效果的代码。
.viewmore {
margin-left: 350px;
opacity: 0;
position: absolute;
z-index: 100;
}
.viewmore:hover{
opacity: 100;
margin-top: 45px;
transition: all ease 0.9s;
}
HTML(想要将其应用于网格中的所有 img):
viewmore.png 是当我悬停它时淡入的 '+' img。
<img src="img/viewmore.png" class="viewmore">
<ul id="og-grid" class="og-grid">
<li>
<a href="" data-largesrc="img/work/sunmoon.jpg" data-title="MoonSun Shades" data-description="Swiss chard pumpkin bunya nuts maize plantain aubergine napa cabbage soko coriander sweet pepper water spinach winter purslane shallot tigernut lentil beetroot.">
<img src="img/work/sunmoon2.jpg" alt="img01"/>
</a>
</li>
</ul>
GIF:
https://gyazo.com/fe388835229cf2492a0188f2d29a12df
我想在悬停 img 时同时看到它们。
诀窍是在父元素上设置 :hover
伪 class。当您悬停父项时,您可以移动其中一个子项。
我稍微重新组织了您的代码并引入了更多语义 class 名称:
.view-more img.main {
transition: all 1s ease;
display: block;
-webkit-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.view-more:hover img.main {
-webkit-filter: grayscale(0%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.view-more {
position: relative; /* needed for child absolute positioning */
display: inline-block;
overflow: hidden;
}
.view-more .button {
right: 10px;
top: -80px;
position: absolute;
z-index: 100;
opacity: 0;
transition: all 1s ease;
border: 1px red solid;
}
.view-more:hover .button {
top: 0;
opacity: 1;
}
<a href="#" class="view-more">
<img class="main" src="https://via.placeholder.com/350x150" alt="img01" width="200"/>
<img src="https://via.placeholder.com/50x50" class="button" width="50">
</a>
我有一个 class 具有此 :hover 效果,可赋予图像颜色。 我有这个单独的 class,它在 :hover 上显示“+”,但只有当我悬停这个 class 时。我想对一个 img:hover:
有两种 :hover 效果img:hover 效果的代码。 (使用 b/w 过滤器)。
.og-grid li > a,
.og-grid li > a img {
border: none;
outline: none;
display: block;
position: relative;
-webkit-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.og-grid li > a,
.og-grid li > a img:hover{
-webkit-filter: grayscale(0%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}
+ 悬停效果的代码。
.viewmore {
margin-left: 350px;
opacity: 0;
position: absolute;
z-index: 100;
}
.viewmore:hover{
opacity: 100;
margin-top: 45px;
transition: all ease 0.9s;
}
HTML(想要将其应用于网格中的所有 img): viewmore.png 是当我悬停它时淡入的 '+' img。
<img src="img/viewmore.png" class="viewmore">
<ul id="og-grid" class="og-grid">
<li>
<a href="" data-largesrc="img/work/sunmoon.jpg" data-title="MoonSun Shades" data-description="Swiss chard pumpkin bunya nuts maize plantain aubergine napa cabbage soko coriander sweet pepper water spinach winter purslane shallot tigernut lentil beetroot.">
<img src="img/work/sunmoon2.jpg" alt="img01"/>
</a>
</li>
</ul>
GIF: https://gyazo.com/fe388835229cf2492a0188f2d29a12df
我想在悬停 img 时同时看到它们。
诀窍是在父元素上设置 :hover
伪 class。当您悬停父项时,您可以移动其中一个子项。
我稍微重新组织了您的代码并引入了更多语义 class 名称:
.view-more img.main {
transition: all 1s ease;
display: block;
-webkit-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.view-more:hover img.main {
-webkit-filter: grayscale(0%);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}
.view-more {
position: relative; /* needed for child absolute positioning */
display: inline-block;
overflow: hidden;
}
.view-more .button {
right: 10px;
top: -80px;
position: absolute;
z-index: 100;
opacity: 0;
transition: all 1s ease;
border: 1px red solid;
}
.view-more:hover .button {
top: 0;
opacity: 1;
}
<a href="#" class="view-more">
<img class="main" src="https://via.placeholder.com/350x150" alt="img01" width="200"/>
<img src="https://via.placeholder.com/50x50" class="button" width="50">
</a>