如何在焦点上激活 parent 动画(tab 移至)child
How to activate parent animation on focus (tab over to) child
在尝试描述它时,我认为简单地显示代码是最简单的。
<div class="cdm-animated-card">
<div class="cardTitle">
<h5 class="cardHeader">Collection Title</h5>
</div>
<img class="cardImage" src="collection/thumbnail.jpg" alt="alt text">
<div class="cardDescriptionDiv">
<div class="cardDescriptionText">
<a class="cardLink" href="link/to/collection">this is my clickable description</a>
</div>
</div>
</div>
障碍 1:悬停时获取描述 div 至 "fade in"。这是我的 CSS,减去了 header 和其他 non-relevant 部分的一些内容。
.cardsWrapper {
display: flex;
flex-wrap: wrap;
margin: 0px 10px 10px 10px;
justify-content: center;
}
.cdm-animated-card {
position: relative;
display: flex;
overflow: hidden;
/*other css*/
}
.cardDescriptionText a {
text-decoration: none;
color: #E6AA3C;
font-weight: 400;
padding: 5px;
font-size: 18px;
}
.cdm-animated-card .cardDescriptionDiv {
opacity: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding: 15px;
-webkit-transition: all 0.4s ease-in-out 0s;
transition: all 0.4s ease-in-out 0s;
}
.cdm-animated-card .cardDescriptionText {
text-align: center;
font-size: 18px;
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
width: 75%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.cdm-animated-card:hover .cardDescriptionDiv, .cdm-animated-card.active .cardDescriptionDiv {
opacity: 1;
}
现在,当我将鼠标悬停在这些卡片上时,描述 div 淡入。一切看起来都居中..一切都很好..但是当我从页面上部的元素切换时,我可以看到 [if我已经将鼠标悬停在一张卡片上],描述文本周围有蓝色的小边框。
问题是...
当我切换到锚点时 [我还没有悬停] 动画永远不会发生,基本上,如果我不能使用鼠标,我将永远无法看到描述。
我试过了
.cdm-animated-card .cardLink:focus, .cdm-animated-card .cardDescriptionDiv:focus, .cdm-animated-card, .cardDescriptionText:focus {
opacity: 1;
}
基本上是飞镖法...也试过
.cdm-animated-card:focus .cardDescriptionDiv {
opacity: 1;
}
因为据我了解,当您切换到一个元素时,它现在是 "focused," 我试着说,'when the description is focused via tab, change the opacity of the .cardDescriptionDiv
element to 1 so that I can see it.'
tldr:当切换到 child 时,我希望它的 parent 改变不透明度。
--脸掌--
我错过了“.parent:focus-within”伪class。
.cardDescriptionDiv:focus-within {
opacity: 1;
}
固定
在尝试描述它时,我认为简单地显示代码是最简单的。
<div class="cdm-animated-card">
<div class="cardTitle">
<h5 class="cardHeader">Collection Title</h5>
</div>
<img class="cardImage" src="collection/thumbnail.jpg" alt="alt text">
<div class="cardDescriptionDiv">
<div class="cardDescriptionText">
<a class="cardLink" href="link/to/collection">this is my clickable description</a>
</div>
</div>
</div>
障碍 1:悬停时获取描述 div 至 "fade in"。这是我的 CSS,减去了 header 和其他 non-relevant 部分的一些内容。
.cardsWrapper {
display: flex;
flex-wrap: wrap;
margin: 0px 10px 10px 10px;
justify-content: center;
}
.cdm-animated-card {
position: relative;
display: flex;
overflow: hidden;
/*other css*/
}
.cardDescriptionText a {
text-decoration: none;
color: #E6AA3C;
font-weight: 400;
padding: 5px;
font-size: 18px;
}
.cdm-animated-card .cardDescriptionDiv {
opacity: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding: 15px;
-webkit-transition: all 0.4s ease-in-out 0s;
transition: all 0.4s ease-in-out 0s;
}
.cdm-animated-card .cardDescriptionText {
text-align: center;
font-size: 18px;
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
width: 75%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.cdm-animated-card:hover .cardDescriptionDiv, .cdm-animated-card.active .cardDescriptionDiv {
opacity: 1;
}
现在,当我将鼠标悬停在这些卡片上时,描述 div 淡入。一切看起来都居中..一切都很好..但是当我从页面上部的元素切换时,我可以看到 [if我已经将鼠标悬停在一张卡片上],描述文本周围有蓝色的小边框。
问题是...
当我切换到锚点时 [我还没有悬停] 动画永远不会发生,基本上,如果我不能使用鼠标,我将永远无法看到描述。
我试过了
.cdm-animated-card .cardLink:focus, .cdm-animated-card .cardDescriptionDiv:focus, .cdm-animated-card, .cardDescriptionText:focus {
opacity: 1;
}
基本上是飞镖法...也试过
.cdm-animated-card:focus .cardDescriptionDiv {
opacity: 1;
}
因为据我了解,当您切换到一个元素时,它现在是 "focused," 我试着说,'when the description is focused via tab, change the opacity of the .cardDescriptionDiv
element to 1 so that I can see it.'
tldr:当切换到 child 时,我希望它的 parent 改变不透明度。
--脸掌--
我错过了“.parent:focus-within”伪class。
.cardDescriptionDiv:focus-within {
opacity: 1;
}