あるボタンにホバーしたらイラレで書き出したL字型の線がスタートからゴールまでイーズアウトで描画されていくアニメーションをcssやjsで作りたいのですが、やり方がわからず困っています。。イメージは以下のような感じです。ご教授の程お願いします。。
s.kが👍を押しています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
vivus.jsというライブラリで簡単に実現できます。illustratorで作ったパスファイルの<svg>
タグの部分を抜き取ってhtmlに貼り付けてください。
html
1<!-- vivus,jQuery読み込み --> 2<script src="https://cdnjs.cloudflare.com/ajax/libs/vivus/0.4.4/vivus.js"></script> 3<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" 4crossorigin="anonymous"></script> 5 6<svg version="1.1" id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" 7 y="0px" width="237.26px" height="422.36px" viewBox="0 0 237.26 422.36" enable-background="new 0 0 237.26 422.36" 8 xml:space="preserve"> 9<circle cx="35.75" cy="68.25" r="6.25"/> 10<line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="35.75" y1="68.25" x2="35.75" y2="353.5"/> 11<line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="35.75" y1="353.5" x2="193.5" y2="353.5"/> 12<circle fill="none" stroke="#000000" stroke-width="4" stroke-miterlimit="10" cx="198.5" cy="353.5" r="6.25"/> 13</svg> 14 15<button style = "background: #000; width: 100px; height: 50px;" id = "target"></button> 16 17<style> 18#svg { 19 visibility: hidden; 20} 21</style> 22 23<script> 24const vivus = new Vivus('svg', { 25 type: 'oneByOne', 26 duration: 200, 27 animTimingFunction:Vivus.EASE_OUT, 28}); 29 30$(function(){ 31 $('#target').on('mouseover', function(){ 32 $('#svg').css('visibility', 'visible'); 33 vivus.reset().play(); 34 }); 35 $('#target').on('mouseout', function(){ 36 $('#svg').css('visibility', 'hidden'); 37 }); 38}); 39</script>
投稿2020/03/13 15:40
編集2020/03/13 17:30総合スコア757
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。