ヒーローが SVG を使用して Codepen
で素晴らしいアニメーションを描画しているのをよく見かけます。私は常にそれらがどのように機能するかについて興味がありました。これを修正する必要があると常に感じています。 SVG を十分に理解し、SVG パターンを自分で描画した場合にのみ、SVG を動かすことができます。
でもそうではありません。今日は、SVG アニメーションをすぐに実装できる簡単なテクニックを教えます。
Codepen
を開き、インターフェースの build
ボタンをクリックすると、アニメーションを使用して家を建て、煙とともに家を建てることができます。
デモアドレス: https://codepen.io/johnYu243/pen/bGBVEwv
絶妙な SVG パターンを探しています
自分で描くことはできないので、既成のライブラリを探します。svg ライブラリはたくさんあります。Flaticon、iconfont、Iconfinder、icons8 などの Web サイトで、無料の svg パターンが多数提供されています。
SVG パターンの分析
Opendevtool
SVG パターンを観察すると、結果:
element
path
と circle
はどちらも svg の DOM 要素です
は、それぞれ svg パターン内の線と円を表します。
例:
<path></path>
上記のコードの d の内容: M はペンを (10, 25) に移動することを表し、L は (10, 75) に線を描画します。最後に原点に戻って三角形を描きます。
devtool を通じて、各 path
がパターンのどの部分に対応するかを確認できます。
現時点では、アイデアは次のようになります。各要素がパターンのどの部分に対応するかを知ることができ、アニメーション化したい DOM 要素を操作できるためです。
TimelineLite/TimelineMax ツール
CSS や JavaScript を使って id と className だけでアニメーションを自分で処理するのは、やはりかなり難しく、さらに時間がかかります
#したがって、ツールを借りる必要があります。タイムライン (Lite|Max) と TweenMax はよく知られています GreenSock アニメーション プラットフォーム (略して GSAP) 有名なツールによって開始された作成可能なタイムライン (タイムライン)
GreenSock アニメーション プラットフォーム (GSAP と呼ばれます) は、アニメーションやその他のタイムラインのコンテナーとして使用され、アニメーション全体の制御と正確なタイミング管理を容易にします。GSAP は、各 Ease 機能の効果を示す Ease Visualizer
も提供しており、次のコードも添付しています:デモのアドレス: https://codepen.io/johnYu243/pen/jOVbMzX
数行の簡単なコードで次の効果を実現できます:
#GSAP の概要
GSAP の API 関数は非常に強力で、関連するコミュニティがあります: 公式 Web サイトのドキュメント、Forum、TimelineMax 中国語マニュアル
最初の住宅建築例では、主に TimelineMax の from
と staggerFrom
を使用しました。どちらの API も初期値を設定するだけで済み、指定された時間内にトゥイーン アニメーションが完了します:
tl.from("#House > rect:nth-child(24)", 1, { scaleX: 0, transformOrigin: "center", ease: Power2.easeOut })
このステップでは、CSS セレクター #House > rect:nth-child(24) を実行します。
この要素は、scaleX
を 0 として中心を変形の起点として開始し、Power2.easeOut
を使用して 1 秒以内に元の状態に戻して補正を行います。アニメーション。
.staggerFrom( ["#House > path:nth-child(34)", "#House > path:nth-child(32)"], 0.8, { scaleY: 0, transformOrigin: "bottom", ease: Bounce.easeOut, stagger: 0.2 }, 0, "scene1+=0.5" )
は from
に似ていますが、staggerFrom
は複数の CSS セレクターを一度に配置でき、stagger
属性を使用してセレクターを設定できる点が異なります。配列ではどのくらいの時間差が現れるのでしょうか?
詳細な API パラメータについては、公式ドキュメントを参照してください。
次に、SVG に戻り、devtool を使用して ## を削除する必要があります。 svg の内部要素の #CSS セレクター とても簡単です。要素パネルで対応する DOM 要素を見つけて右クリックし、
Copy -> Copy selector を選択すると、直接実行できます。それを要素の CSS セレクターにコピーします:
现在我们能取得svg 中任意部分的CSS Selector,也知道怎么用GSAP API 来进行补间动画,现在是时候将其结合起来!
我们先调整下基本布局,一般在空白Html内直接放入svg时,图案大多会紧靠页面左上角,我们可以套用个margin: 0 auto
将其置中,看起来会顺眼一些,你也能额外加些padding。我们在页面添加一个按钮来调用动画:
<!--html part--> <button onclick="animateBike()"> Build! </button> <!--css part--> <style> #Capa_1 { margin: 0 auto; display: block; width: 256px; height: 100%; } </style>
接着我们使用TimelineMax
提供的staggerFrom
函数,利用devtool将滑板车的轮子部分找出来,复制它们的CSS Selector,放入staggerFrom
函数参数中,设定x与y轴的scale
都从0开始,由center
增长,采用Bounce.easeOut
的ease function ,而四个Selector间以stagger: 0.2
的属性值作为补间动画出现的时间差:
const tl = new TimelineMax(); tl.staggerFrom( [ "#Capa_1 > g > path:nth-child(1)", "#Capa_1 > circle:nth-child(7)", "#Capa_1 > path:nth-child(6)", "#Capa_1 > circle:nth-child(5)" ], 1, { scaleY: 0, scaleX: 0, transformOrigin: "center", ease: Bounce.easeOut, stagger: 0.2 } )
简单几行代码,就能让我们的滑板车动起来!
演示地址:https://codepen.io/johnYu243/pen/poNjNzz
补间是一个术语,用于描述逐帧序列,有时也称为"中间"。 在那个地方,一个动作导致下一个动作产生一个流畅的动作。
完善动画
你可以把TimelineMax想像成时间轴,动画按指定顺序执行,而staggerFrom
则可以同时让多个DOM元素以微小时间差的顺序启动,另外我们还可以设置一些Flag来指定要等到哪几个动画完成后,才接续其他动画。
最后,发挥自己的创意,使用各种API打出一套组合拳:
演示地址:https://codepen.io/johnYu243/pen/yLVYVey
结论
看到这里,跃跃欲试了吗?
总之,我自己觉得蛮有趣的,希望或多或少对读到这篇文章的人有点帮助。
最后给大家分享一个很酷的demo,来自我的文章封面
参考文章
How to Create Beautiful SVG Animations Easily
更多编程相关知识,请访问:编程教学!!
以上がsvgを使って美しいアニメーションを素早く描こう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
