我绝不是CSS专家(因此在这里寻求帮助),我正在使用来自this open source effects collection的CSS悬停动画效果。
我正在使用的特定动画是“Ripple Out”。我的所有链接都设置为target=_"blank"
,问题是用户点击其中一个链接后会打开一个新标签,但当他们返回原始标签时,悬停动画不会播放他们刚刚点击的链接。我尝试过使用:visited
,但这并没有真正帮助。
以下是所有相关的CSS:
/* my button styling */
.my-button {
display: inline-block;
position: relative;
margin: 10px;
padding: 8px 15px 8px 15px;
background: #0072C6;
border: none;
text-decoration: none;
font-weight: 600;
font-size: large;
color: white;
width: auto;
min-width: 180px;
text-shadow: 1px 3px 2px #424A8A;
}
a.my-button {
text-decoration: none;
}
a.my-button:visited {
color: white;
}
/* the animation CSS */
/* Ripple Out */
@-webkit-keyframes hvr-ripple-out {
100% {
top: -12px;
right: -12px;
bottom: -12px;
left: -12px;
opacity: 0;
}
}
@keyframes hvr-ripple-out {
100% {
top: -12px;
right: -12px;
bottom: -12px;
left: -12px;
opacity: 0;
}
}
.hvr-ripple-out {
display: inline-block;
vertical-align: middle;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
position: relative;
}
.hvr-ripple-out:before {
content: '';
position: absolute;
border: #0072C6 solid 6px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-animation-duration: .7s;
animation-duration: .7s;
}
.hvr-ripple-out:hover:before, .hvr-ripple-out:focus:before, .hvr-ripple-out:active:before {
-webkit-animation-name: hvr-ripple-out;
animation-name: hvr-ripple-out;
}
我从github上可用的唯一改变是背景颜色。
任何人都可以弄清楚如何让动画在返回原始标签/窗口后继续播放,并且解释CSS发生了什么以便我可以了解它是如何工作的?
这是一个包含所有内容的jsfiddle。
答案 0 :(得分:2)
只需删除此行,一切都应该有效。发生了什么事情是在您单击按钮并返回页面后,该按钮仍为:focus
,因此样式不会清除。
.hvr-ripple-out:focus:before,