a { font-size:2.5rem; margin:1rem; position:relative; color:darkslategray; } a:link { text-decoration:none; } a:after { content:""; position:absolute; bottom:-0.5rem; height:0.18rem; width:0%; transition:all 0.3s; left:0; background-color:blueviolet; } a:before { content:""; position:absolute; bottom:-0.5rem; height:0.18rem; width:0%; transition:all 0.3s; left:50%; background-color:#fff; } a:hover:after { animation-name:example; animation-duration:0.3s; animation-fill-mode:both; } a:hover:before { width:100%; left:0%; background-color:blueviolet; } @keyframes example { from { width:0%; } to { width:100%; } }
更新时间:2021-07-01 02:06:43
鼠标进入时执行after动画,从左到右,并停留到最后一贞,执行before动画从中间开始并且从底色(#fff)到实际色,这样看起来像是只执行了after的动画;鼠标退出时只执行before动画,完成从中间隐藏