検索
ホームページウェブフロントエンドH5 チュートリアルHTML5 12 での SVG 2D の概要 - SVG DOM および DOM 操作の概要_html5 チュートリアル スキル

スクリプトを使用すると、さまざまな複雑なタスクを簡単に完了でき、アニメーションやインタラクションを完了するための主流の方法でもあります。 SVG は HTML の要素であるため、通常の DOM 操作をサポートします。また、SVG は本質的に XML ドキュメントであるため、主に SVG DOM と呼ばれる特別な DOM 操作もあります。もちろん、IE は現在 SVG をサポートしていないため、IE に基づいて SVG ページを開発するには別の方法が必要です。この部分の知識は実際には誰もがよく知っているので、簡単に見てみましょう。

HTML ページでの DOM 操作
DOM については、次のような簡単な例を参照してください。 >コードをコピーします

コードは次のとおりです:
#svgContainer {
width: 400px ;
高さ: 400px;
背景色: #a0a0a0;

関数 CreateSVG () = "http://www.w3.org/2000/svg";
var boxWidth = 300;
var svgElem = document.createElementNS (xmlns, "svg");
svgElem.setAttributeNS (null, "viewBox", "0 0 " boxWidth " " boxHeight);
svgElem.setAttributeNS (null, "width", boxWidth); " , boxHeight);
svgElem.style.display = "block";
var g = document.createElementNS (xmlns, "g");
svgElem.appendChild (g);
g. setAttributeNS (null, 'transform', 'matrix(1,0,0,-1,0,300)');
// 線形グラデーションを描画します
var defs = document.createElementNS (xmlns, "defs");
var grad = document.createElementNS (xmlns, "linearGradient");
grad.setAttributeNS (null, "id", "gradient");
grad.setAttributeNS (null, "x1", "0 % ");
grad.setAttributeNS (null, "x2", "0%");
grad.setAttributeNS (null, "y1", "100%");
grad.setAttributeNS (null , "y2", "0%");
var stopTop = document.createElementNS (xmlns, "stop");
stopTop.setAttributeNS (null, "offset", "0%"); stopTop .setAttributeNS (null, "stop-color", "#ff0000");
grad.appendChild (stopTop);
var stopBottom = document.createElementNS (xmlns, "stop"); setAttributeNS (null, "offset", "100%");
stopBottom.setAttributeNS (null, "stop-color", "#0000ff");
grad.appendChild (stopBottom); appendChild (grad);
g.appendChild (defs);
var coords = "l 0, 300"; coords = " l 300, 0";
coords = " l -300, 0";
var path = document.createElementNS (xmlns, "path") ) ;
path.setAttributeNS (null, 'ストローク', "#000000");
path.setAttributeNS (null, 'ストローク幅', 10); - linejoin', "round");
path.setAttributeNS (null, 'd', coords);
path.setAttributeNS (null, 'fill', "url(#gradient)");パス .setAttributeNS (null, 'opacity', 1.0);
g.appendChild (パス);
svgContainer.appendChild (svgElem); > }


;



お気づきかと思いますが、通常の HTML 要素の DOM 操作はまったく同じです。
要素の選択: document.getElementById
要素の作成: document.createElementNS
子要素を作成する別の方法: createChildNS。
要素を追加します:node.appendChild
要素の属性を設定します:element.setAttributeNS/element.setAttribute
上記の操作に加えて、次の操作と属性も共通です:
要素の属性を取得します。属性 属性値: element.getAttributeNS/element.getAttribute
要素に属性が存在するかどうかを確認します: element.hasAttributeNS
要素の属性を削除します: element.removeAttributeNS
親要素、子要素、および兄弟ノード: element.parentNode/element.firstChild/child.nextSibling
これらのメソッドはここでは詳しく紹介しません。また、DOM ツリーのノード構造とオブジェクト間の継承関係も同様であるため、それらは異なります。詳しく説明されています。必要な学生は、後で DOM コア オブジェクトのドキュメントを参照できます。
ただし、SVG は本質的に XML ドキュメントであるため、要素の作成時に名前空間が指定されており、複数の名前空間がない場合、使用される基本的な DOM メソッドはすべて NS で終わり、関連する名前空間を提供することに注意してください。関連する属性を設定する場合、element.setAttribute を直接使用して属性値を設定するなど、NS のないバージョンを使用することも選択できますが、一般的には、NS で終わるバージョンを使用することを強くお勧めします。このバージョンでは、複数の名前空間の場合でも常に正常に動作します。
SVG DOM
これは標準の DOM とどう違うのですか? 現在のところ、属性の割り当て方法が異なることだけがわかります。このことを知っている学生がいたら教えてください。
上記の例では、element.setAttributeNS/element.setAttribute を使用して属性に値を割り当てています。SVG DOM では、ドットにアクセスすることでオブジェクト指向のメソッドを使用してオブジェクトの属性に値を割り当てることができます。たとえば、次の 2 つのメソッドの比較:
一般的な DOM メソッド:

コードをコピーします
コードは次のとおりです。

element.setAttribute("x", "10");
element.setAttribute("y", "20"); ("width", "100%");
element.setAttribute("height", "2em");

SVG DOM の方法:


コードをコピーします コードは次のとおりです。
element.x.baseVal.value = 10; .y.baseVal.value = 20;
element.width .baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE, 100);
element.height.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_EMS, 10); >
DOM スクリプトは伝統的なスクリプトであり、Construct の「値文字列」を渡して個々の項目を設定するのが特徴です。 SVG DOM スクリプト スタイルの利点は、「値文字列」を作成する必要がないため、DOM スクリプトよりもパフォーマンスが優れていることです。

SVG に埋め込まれたスクリプト

SVG 内にスクリプトを追加したい場合は、これとは別に、基本的には script 要素を使用する必要があります。外部HTMLにスクリプトを入れるのと同じです。例を見てみましょう:



コードをコピーします
コードは次のとおりです:










このテキストをクリックすると、四角形の色が表示されます。
四角形をクリックして四角形領域を表示します。
このテキストをクリックすると子の数が表示されます
ルート要素の要素。



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
H5は何を参照していますか?コンテキストの探索H5は何を参照していますか?コンテキストの探索Apr 12, 2025 am 12:03 AM

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

H5:ツール、フレームワーク、およびベストプラクティスH5:ツール、フレームワーク、およびベストプラクティスApr 11, 2025 am 12:11 AM

H5開発で習得する必要があるツールとフレームワークには、Vue.JS、React、Webpackが含まれます。 1.Vue.jsは、ユーザーインターフェイスの構築に適しており、コンポーネント開発をサポートします。 2.複雑なアプリケーションに適した仮想DOMを介したページレンダリングを最適化します。 3.Webpackは、モジュールのパッケージングに使用され、リソースの読み込みを最適化します。

HTML5の遺産:現在のH5の理解HTML5の遺産:現在のH5の理解Apr 10, 2025 am 09:28 AM

html5hassificlytransformdedwebdeveverment byintroducingsingingelements、endincemultimediasupport、およびrequrovingperformance.1)itmadewebsitesmoreaccessibleandseo-frendlywithsemantelementslike、and.2)

H5コード:アクセシビリティとセマンティックHTMLH5コード:アクセシビリティとセマンティックHTMLApr 09, 2025 am 12:05 AM

H5は、セマンティック要素とARIA属性を介して、WebページのアクセシビリティとSEO効果を改善します。 1.使用などを使用して、コンテンツ構造を整理し、SEOを改善します。 2。ARIA-LabelなどのARIA属性はアクセシビリティを強化し、支援技術ユーザーはWebページをスムーズに使用できます。

H5はHTML5と同じですか?H5はHTML5と同じですか?Apr 08, 2025 am 12:16 AM

「H5」と「HTML5」はほとんどの場合同じですが、特定の特定のシナリオでは異なる意味を持つ可能性があります。 1。「HTML5」は、新しいタグとAPIを含むW3C定義標準です。 2。 "H5"は通常、HTML5の略語ですが、モバイル開発では、HTML5に基づくフレームワークを参照する場合があります。これらの違いを理解することは、プロジェクトでこれらの用語を正確に使用するのに役立ちます。

H5の機能は何ですか?H5の機能は何ですか?Apr 07, 2025 am 12:10 AM

H5、またはHTML5は、HTMLの5番目のバージョンです。開発者により強力なツールセットを提供し、複雑なWebアプリケーションを簡単に作成できるようにします。 H5のコア関数には、次のものが含まれます。1)Webページにグラフィックとアニメーションを描画できる要素。 2)Webページ構造をSEOの最適化を明確かつ助長させるなどのセマンティックタグなど。 3)Geolocationapiなどの新しいAPIは、ロケーションベースのサービスをサポートします。 4)互換性テストとポリフィルライブラリを通じて、クロスブラウザーの互換性を確保する必要があります。

H5リンクの実行方法H5リンクの実行方法Apr 06, 2025 pm 12:39 PM

H5リンクを作成する方法は?リンクターゲットを決定します。H5ページまたはアプリケーションのURLを取得します。 HTMLアンカーの作成:< a>を使用しますアンカーを作成し、リンクターゲットURLを指定するタグ。リンクプロパティの設定(オプション):必要に応じて、ターゲット、タイトル、およびオンクリックプロパティを設定します。 Webページに追加:リンクを表示するWebページにHTMLアンカーコードを追加します。

H5互換性の問題を解決する方法H5互換性の問題を解決する方法Apr 06, 2025 pm 12:36 PM

H5互換性の問題のソリューションには、次のものが含まれます。Webページが画面サイズに応じてレイアウトを調整できるレスポンシブデザインを使用します。クロスブラウザーテストツールを使用して、リリース前に互換性をテストします。 PolyFillを使用して、古いブラウザの新しいAPIのサポートを提供します。 Web標準に従って、効果的なコードとベストプラクティスを使用します。 CSSプリプロセッサを使用して、CSSコードを簡素化し、可読性を向上させます。画像を最適化し、Webページのサイズを削減し、ロードをスピードアップします。 HTTPSがWebサイトのセキュリティを確保できるようにします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。