snap.svgへの紹介
キーテイクアウト
- snap.svgは、マスキング、クリッピング、パターン、グラデーションなどの機能を提供するスケーラブルベクトルグラフィックス(SVG)を使用するために特別に設計された強力で柔軟なライブラリです。 snap.svgを使用すると、開発者は既存のSVGコンテンツとsnap.svgで生成されたSVGコンテンツの両方をアニメーション化および操作でき、すべての最新のブラウザーと互換性があります。
- snap.svgは低レベルのライブラリであり、チャートやデータバインディングをまだサポートしていませんが、複雑なアニメーションとインタラクティブなSVGコンテンツの作成に最適です。 SVG要素はsnap.svgでグループ化できるため、グループ内のすべての要素により一般的な変換とイベント処理をより簡単に適用できます。
- snap.svgは、勾配、パターン、クリッピングパスなどのほとんどのSVG機能をサポートし、すべての最新のブラウザーと互換性があります。ただし、一部のSVG機能は、古いブラウザでは完全にはサポートされていない場合があります。
- snap.svgは、見ようとしているように、マスキング、クリッピング、パターン、勾配などの最新のSVG機能を提供します。
ラファエルを見る機会がなかったら、おそらくそうすべきです。 Dmitry Baranovskiyのソロプロジェクトとして作成されたJavaScriptの素晴らしい作品です。個人的なプロジェクトとして始まりましたが、結果はインターフェイス(非常に明確で一貫した)、パフォーマンス、および外観(特にアニメーション)で顕著です。ライブラリは、チャートではなく「フリーハンド」の図面とアニメーションに向けられています。 Graphaël拡張機能は後にこれに対処するためにリリースされましたが、D3ほど人気がなく、広く普及していません。
他の図書館よりも先を行っているにもかかわらず、ラファエルはその限界を示し始めました。たとえば、古いブラウザと互換性を持つために、Raphaëlはあなたのアニメーションを際立たせるクールな新しいSVG機能をすべてサポートしていません。 そのため、著者は新しいプロジェクトであるSnap.svgから新たに始めることを決めたのです。これはもちろん、Raphaëlを設計した経験から利益を得ることができます。 snap.svgも過去と壊れ、まったく新しい種類の特殊効果を導入できます。
ああ、スナップ!
上記のすべてのクールな機能をサポートしています。
SNAPは、既存のSVGを包み込み、アニメーション化できます。 Adobe Illustrator、Inkscape、Sketch、またはSVGの文字列を非同期にロードして、SVGファイルをスプライトに変えるために必要なピースをクエリして、SVGを生成できます。
無料でオープンソースです。- cons:
- それは低レベルのライブラリなので、データを視覚化する必要がある場合、残念ながらチャートのサポートはまだありません。 データバインディングのサポートはありません。
Snapは、まだ完全な成熟に達していない若いプロジェクトです。あなたの個人的なプロジェクトに使用することはすでに素晴らしいことですが、複雑なプロジェクトで使用する前にこの側面を重み付けする必要があります。
- 私たちが述べたように、Snapは古いブラウザではサポートされていない機能を使用します。完全な、更新された互換性テーブルはまだ提供されていませんが、このライブラリは少なくとも次のブラウザバージョン(および新しい)で正常に動作するはずです:
- firefox esr 18
- ie 9.0.8
オペラ24
- スナップ
- を開始します GitHubリポジトリからソースファイルをダウンロードした後、それらを解凍して、構築された配布ファイルを含むDISTフォルダーを探すことができます。グラントでスナップの構築に関する詳細な手順、または最新バージョンをチェックするには、こちらをご覧ください。
- 新しいプロジェクトのJSフォルダー内のファイルのミニ型バージョンをコピーしたら、HTMLページにスクリプトを含めてください。プロジェクトのルートディレクトリにあると仮定すると、ページの閉じたボディタグの直前にこの行を追加できます。
- これで、ベクターグラフィック用の図面領域を作成する準備ができました。これを行うには、2つの方法があります
- ページのDOMに追加される真新しい図面を作成します(ボディの内側)。 既存のDOM要素を再利用し、スナップ構造に包みます。任意の要素をラップすることはできますが、メソッドを描画するには、SVG要素が必要になります。
- 最初の方法では、JavaScriptコードの作成時に表面積の幅と高さを明示的に設定できます。プレゼンテーションとコンテンツをより多くのレベルの分離を達成したい場合は、2番目の方法を使用して、CSSルールの値を指定できます。高レベルでは、最初の方法では、図面の外観を動的に調整できますが、必要でない場合は、2番目の方法はMVCに準拠しています。さらに、導入セクションで述べたように、ラッピングは外部ツールで作成されたSVG図面をインポートおよび変更できるものです。
javascriptの単一の行でまだ逃げることができ、図面をインポートすることができます。1
<span><span><span><script</span> src<span>=
"/js/snap.svg-min.js"
</span>></span><span><span></script</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピーshapes1
<span>
var
s = <span>Snap</span>(800, 600);</span>
ログイン後にコピーログイン後にコピーログイン後にコピー1
2
3
<span><span><span><svg</span> id<span>=
'complexSVGfromIllustrator'
</span> version<span>=
"1.1"
</span> xmlns<span>=
"https://www.w3.org/2000/svg"
</span>></span>
</span> ...
<span><span><span></svg</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピードキュメントからわかるように、円()メソッドの最初の2つのパラメーターはその中心の座標であり、3つ目は円の半径です。これらのすべてのパラメーターは必須であり、それらを提供しないとエラーがスローされます。 Circle()メソッドは、他のすべての描画メソッドと同様に、オブジェクトへの参照を返します。 次のコードサンプルに示すように、
楕円を描くこともできます。今回は垂直および水平半径が必要です。繰り返しますが、すべてのパラメーターは必須です1
<span>
var
s = <span>Snap</span>(
'#complexSVGfromIllustrator'
);</span>
ログイン後にコピーログイン後にコピーログイン後にコピー今、ゼロから始めたい場合は、別の描画面を作成するか、紙からすべての図面を消去するためにPaper.clear()メソッドを使用することもできます。
線とポリゴン
より複雑な図面をカバーするには、一歩後退し、線を引くことについて話す必要があります。あなたが期待するように、この方法は、以下に示すように、ラインのエンドポイントの4つの座標を取得します。
もっと興味深いのは、複雑なポリラインを描く可能性です。VARline = Paper.Polyline(10、100、110、200)。原則として、上記のLine()メソッドに相当しますが、おそらくその視覚的な結果に驚くでしょう。その理由を確認するには、これを試してみましょう1
<span><span><span><script</span> src<span>=
"/js/snap.svg-min.js"
</span>></span><span><span></script</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピーPaper.Polyline()およびPaper.Polygon()は同じ方法のエイリアスであり、デフォルトでは、結果として得られた(閉じた)ポリゴンは、黒い塗りつぶしで描かれ、ストロークがありません。そのため、上記のpolyline()で描かれた線を見ることができませんでした(ただし、ページを検査することで、SVGコードが実際にコンテナに追加されていることを確認できます)。 この動作を変更するだけでなく、他の要素の外観を変更するには、属性を導入する必要があります。1
<span>
var
s = <span>Snap</span>(800, 600);</span>
ログイン後にコピーログイン後にコピーログイン後にコピー属性
SNAP要素の属性の概念は通常よりもやや広くなっています。つまり、同じインターフェイスの下にあるHTML属性とCSS属性の両方が含まれています(他のほとんどのライブラリは、HTML属性の.attr()メソッドを区別します。 style() 'for cssのもの)。スナップラッパーオブジェクトでelement.attr()メソッドを使用することにより、クラスまたはID、および色または幅を設定できます。 上記のように、
SNAPを使用すると、CSSプロパティを要素に割り当てる2つの方法があります。 1つは、これらのプロパティを別のCSSファイルに含めることで、適切なクラスを要素に割り当てることです。JavaScriptを使用してこれらのプロパティを割り当てることで同じ結果を取得できます。
もう一度、もう一度、最初の方法では、コンテンツとプレゼンテーションをよりよく分離することができますが、2番目の方法では属性を動的に変更する可能性が提供されます。 2つの戦略を混合することを考えている場合、CSSファイルで定義されているルールは、要素に割り当てられる時間的順序にもかかわらず、element.attr()で割り当てるルールを切り替えることに留意してください。スタイルを整えたい要素への参照を維持していない場合は、心配しないでください。CSSセレクターを使用して簡単につかむことができます:
1
2
3
<span><span><span><svg</span> id<span>=
'complexSVGfromIllustrator'
</span> version<span>=
"1.1"
</span> xmlns<span>=
"https://www.w3.org/2000/svg"
</span>></span>
</span> ...
<span><span><span></svg</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピーグループ1
<span>
var
s = <span>Snap</span>(
'#complexSVGfromIllustrator'
);</span>
ログイン後にコピーログイン後にコピーログイン後にコピー1
2
<span>
var
paper = <span>Snap</span>(
'#complexSVGfromIllustrator'
),
</span> circle <span>= paper.circle(100, 50, 10);</span>
ログイン後にコピー1
<span>
var
ellipse = paper.ellipse(100, 50, 10, 20);</span>
ログイン後にコピーSNAPは、SVG要素内のネストラスター画像をサポートし、非同期にロードし、負荷完了時にのみ表示します。
1
<span><span><span><script</span> src<span>=
"/js/snap.svg-min.js"
</span>></span><span><span></script</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピー結果のオブジェクトは、SVG要素として扱うことができます。注意して、後でそれらを取得するために画像でselect()を使用する場合、作成されたラッパーはHTML要素のものになります。したがって、SVG要素で使用できるほとんどの方法はサポートされません。
変換同様に、画像を回転させるか、作成後のある時点で要素(またはグループ)を移動する必要がある場合があります。 Transform()メソッドは、SVG変換文字列を渡すことにより、それを行うことができます:
1
<span>
var
s = <span>Snap</span>(800, 600);</span>
ログイン後にコピーログイン後にコピーログイン後にコピー注意してください:2番目の要素の変換の中心は、最初の要素に使用されるものであるため、最終的な効果はあなたを驚かせるかもしれません。
Transform()メソッドを使用して、呼び出される要素の変換記述子オブジェクトを取得することもできます。引数なしで呼び出すだけです。この記述子は、ネストされた要素の場合に局所変換マトリックスと差マトリックスを取得するために使用できます。1
2
3
<span><span><span><svg</span> id<span>=
'complexSVGfromIllustrator'
</span> version<span>=
"1.1"
</span> xmlns<span>=
"https://www.w3.org/2000/svg"
</span>></span>
</span> ...
<span><span><span></svg</span>></span></span>
ログイン後にコピーログイン後にコピーログイン後にコピー結論
この記事は、snap.svgの基本の紹介を提供しました。あなたが最もクールなものを見ることに興味があるなら、高度なフォローアップがまもなく公開されるので、お楽しみに。
データの視覚化とスナップの詳細を知りたい場合は、いくつかの有用なリソースを紹介します。1
<span>
var
s = <span>Snap</span>(
'#complexSVGfromIllustrator'
);</span>
ログイン後にコピーログイン後にコピーログイン後にコピーsnap.svgチュートリアル。
データビジュアル化と高度なテクニックに関するプレゼンテーションからスライドします。
Codepenでアクション上の上記のコードの一部を見てください。
-
SNAP SVG
- に関するよくある質問(FAQ) SNAP SVGと他のSVGライブラリの違いは何ですか?
- SNAP SVGは、Scalable Vector Graphics(SVG)を使用するために特別に設計された強力で柔軟なライブラリです。他のSVGライブラリとは異なり、SNAP SVGは、SNAP SVGで生成された既存のSVGコンテンツとSVGコンテンツの両方をアニメーション化および操作するためのシンプルで直感的なAPIを提供します。また、グラデーション、パターン、クリッピングパスなどのほとんどのSVG機能をサポートし、すべての最新のブラウザと互換性があります。 SNAP SVG JavaScriptファイルをHTMLドキュメントに含める必要があります。公式SNAP SVG Webサイトからダウンロードするか、CDNから直接含めることができます。 SNAP SVGファイルを含めたら、SNAP SVG APIを使用してSVGコンテンツの作成と操作を開始できます。
はい、SNAP SVGは複雑なアニメーションを作成するのに最適です。 SVG属性をアニメーション化できる強力なアニメーションAPIを提供します。 SNAP SVGのマトリックス変換を使用して、簡単に複雑なアニメーションを作成することもできます。さらに、SNAP SVGは緩和機能をサポートします。これは、スムーズで自然なアニメーションを作成するために使用できます。 、Firefox、Safari、Opera、Internet Explorer 9以上。ただし、一部のSVG機能は古いブラウザーでは完全にサポートされていない場合があります。
以上がsnap.svgへの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
