[CSS]テキストリンクのホバー時に、波線をうにょうにょとアニメーションさせるスタイルシートのテクニック
Post on:2018年10月16日
テキストリンクのホバー時に波線をうにょうにょとアニメーションさせるスタイルシートのテクニックを紹介します。
波線はSVGで描くので、非常に滑らかに表示されます。
※下記はアニメーションGIFでコマを落としているため、実際はもっとスムーズです。
実装は非常にシンプルで、コピペで利用できます。
HTML
通常のテキストリンクと同様に、a要素で囲うだけです。
1 |
<p>Flapjacks on a <a href="#">sunny warm</a> afternoon.</p> |
CSS
リンクの通常の下線は「text-decoration: none;」で無しにして、backgroundプロパティで少し太めの下線を用意します。波線のアニメーションはSVGです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
a { background: linear-gradient(to bottom, var(--mainColor) 0%, var(--mainColor) 100%); background-position: 0 100%; background-repeat: repeat-x; background-size: 3px 3px; color: #000; text-decoration: none; } a:hover { background-image: url("data:image/svg+xml;charset=utf8,%3Csvg id='squiggle-link' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:ev='http://www.w3.org/2001/xml-events' viewBox='0 0 20 4'%3E%3Cstyle type='text/css'%3E.squiggle{animation:shift .3s linear infinite;}@keyframes shift {from {transform:translateX(0);}to {transform:translateX(-20px);}}%3C/style%3E%3Cpath fill='none' stroke='%23ff9800' stroke-width='2' class='squiggle' d='M0,3.5 c 5,0,5,-3,10,-3 s 5,3,10,3 c 5,0,5,-3,10,-3 s 5,3,10,3'/%3E%3C/svg%3E"); background-position: 0 100%; background-size: auto 6px; background-repeat: repeat-x; text-decoration: none; } |
実際の動作は、下記デモページでお楽しみください。
See the Pen Link Effectz - Squiggle by Geoff Graham (@geoffgraham) on CodePen.
sponsors