我试图用CSS动画的一条线,通过对一点文本,但它实际上不是动画,只是从隐藏到显示。有人能告诉我我所做的是否可行吗?如果没有,是否有其他方法可以做到这一点?HTML:
<div>
The text in the span <span class="strike">is what I want to strike out</span>.
</div>
CSS:
@keyframes strike{
from{text-decoration: none;}
to{text-decoration: line-through;}
}
.strike{
-webkit-animation-name: strike; /* Chrome, Safari, Opera */
-webkit-animation-duration: 4s; /* Chrome, Safari, Opera */
animation-name: strike;
animation-duration: 4s;
animation-timing-function: linear;
animation-iteration-count: 1;
animation-fill-mode: forwards;
}
6条答案
按热度按时间axr492tv1#
你可以像这样使用一个伪
monwx1rj2#
这取决于你想要如何设置它。
由于
text-decoration-color
是可设置动画的,因此可以从transparent
设置为auto
设置动画。但是这个属性还没有得到广泛的支持。
rhfm7lfc3#
下面是accepted答案的一个变体,使用一个图像来提供一个动画“scribble”删除线。
fnx2tebb4#
这是非常优雅的,海事组织,使用
linear-gradient
作为背景,并油漆线是相同的颜色作为文本(currentColor
)。这种解决方案非常灵活,为许多有趣的效果打开了大门,并且比伪元素解决方案的代码少得多。
来自我的CodePen:
rqmkfv5c5#
我已经能够找到一种方法来解决它,也适用于多行,我主要从Kevin Powell的code pen获得了这些信息:https://codepen.io/kevinpowell/pen/MWYwgOz.这是我的解决方案
此外,对于辅助功能问题,您可以添加
注意:“fancy-link”类不在paragraph标签上,而是在锚标签上。
3df52oht6#
根据W3Schools,
text-decoration
属性不可设置动画。但是,如果你使用jQuery,你可以。(参见here)