ホームページ ウェブフロントエンド jsチュートリアル DOMスクリプトでの画像切り替え【Firefox対応】_画像特殊効果

DOMスクリプトでの画像切り替え【Firefox対応】_画像特殊効果

May 16, 2016 pm 06:25 PM
dom 映像切り替え

学習プロセス中に他の人のコード実装を分析するのは良い習慣です。よく理解できなくても、何度かコードを入力することも感覚を養うのに良いことです。以下は実際の効果です (通常、Firefox でのみテストします)。

DOMスクリプトでの画像切り替え【Firefox対応】_画像特殊効果

上のナビゲーション リンク上でマウスをスライドすると、下のボックス内の写真がスムーズに切り替わり、左右に移動します

HTML 構造は次のとおりです:

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


Web デザイン


これらは知っておくべきことです。




とても簡単です。以下の JS コードを直接見てみましょう。まず 2 つの補助関数を指定します。
addLoadEvent



Copy code
コードは次のとおりです。 : function addLoadEvent(func) { var oldonload = window.onload; if(typeof window.onload != "function") {
window.onload = func ;
} else {
window.onload();
func();
}
}


名前のとおり、この関数はロードウィンドウの onload イベントを処理するメソッドです。
insertAfter



コードをコピー


コードは次のとおりです。 parent.insertBefore(newElement, targetElement.nextSibling)
}
}


insertBefore がありますが、 DOM API には insertAfter がないため、ここでカスタマイズします。 appendChild 関数と insertBefore 関数を知っていれば、newElement を targetElement の前に挿入するのは簡単です。
次の moveElement 関数は非常にコアです:
moveElement



コードをコピー


コードは次のとおりです: }
if(!elem.style.left) {
elem.style.left = "0px";
if(!elem.style.top) {
elem.style.top = "0px";
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == Final_x && ypos == Final_y) {
return true;
if (xpos < Final_x) {
var dist = Math.ceil((final_x - xpos)/10);
xpos = xpos dist;
if(xpos > Final_x) {
var dist = Math.ceil((xpos - Final_x)/10);
xpos = xpos - dist;
if(ypos
var) dist = Math.ceil((final_y - ypos)/10);
ypos = ypos dist; -final_y)/ 10);
ypos = ypos - dist;
elem.style.left = xpos "px"; >varrepeat = "moveElement('" elementID "',"final_x ","final_y ","interval")";
elem.movement(repeat, interval); >
final_x、final_y はそれぞれ、要素の移動が終了する左と上の値であるため、移動された要素は位置属性 (「相対」または「位置」) を設定する必要があります。そのため、その左と上の属性はこの関数は難しいことではありません。要素の現在の左と上の値を取得して、final_x、final_y と比較し、各ステップ サイズに従って左と上の値を変更するだけです。は各 if の dist 変数です。毎回、各 dist は移動された要素の最新の左と上に基づいて計算されるため、最初に加速し、次に減速するという移動効果が生じます。パラメーター間隔を setTimeout と組み合わせることで可能になります。
次に、pepareSlideshow 関数で必要な dom 要素を動的に作成します:
prepareSlideshow
コードをコピーします > コードは次のとおりです:

function prepareSlideshow() {
//ブラウザが DOM API を理解できることを確認します
if(!document.getElementsByTagName ) return false;
if(!document.getElementById) return false; slideshow = document.createElement("div");
/*CSS で設定する場合はここで属性を省略できます
slideshow.style.position = "relative";
slideshow.style.overflow = " hidden";
slideshow.style.width = "100px";
slideshow.style.height = "100px";
*/
slideshow.setAttribute("id", "slideshow");
varreview = document.createElement("img");
/*CSS で設定する場合、ここは省略できます
preview.style.position = "absolute";プレビュー.setAttribute("src", "slideshow/topics.gif");
preview.setAttribute("alt", "Web デザインの構成要素");
preview.setAttribute("id", "プレビュー) ");
slideshow.appendChild(preview);
var list = document .getElementById("linklist");
insertAfter(slideshow, list);
// olvar links = list.getElementsByTagName("a");
//
links[0].onmouseover = function() {
moveElement("preview) の各マウスオーバー イベントに moveElement メソッドをアタッチします",-100, 0, 10);
}
links [1].onmouseover = function() {
moveElement("preview",-200, 0, 10);
}
links[2].onmouseover = function() {
moveElement( "preview",-300, 0, 10)
}
}


これにも関係しますいくつかの要素の作成、要素属性の設定、およびその他の基本的な DOM API アプリケーションを実行します。次に、マウス移動イベントに対応する moveElement メソッドを ol[id="linklist"] の要素に追加し、最後に addLoadEvent (prepareSlideshow) を使用します。この機能もHTMLやレンダリングと組み合わせるとわかりやすいです。
コード パッケージのダウンロード
http://www.jb51.net/jiaoben/27501.html

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JavaScript で画像のシームレスな左右のスライド切り替え効果を実現するにはどうすればよいですか? JavaScript で画像のシームレスな左右のスライド切り替え効果を実現するにはどうすればよいですか? Oct 19, 2023 am 08:56 AM

JavaScript で画像のシームレスな左右のスライド切り替え効果を実現するにはどうすればよいですか?インターネットの発展に伴い、Web デザインでは画像がページの重要な要素として頻繁に使用されます。画像の切り替え効果は、ページの美しさとインタラクティブ性に重要な影響を与えます。この記事では、JavaScript を使用して画像のシームレスな左右のスライド切り替え効果を実現する方法を検討し、具体的なコード例を添付します。画像のシームレスな左右のスライド切り替え効果を実現するには、まず次のことを行う必要があります。 画像コンテナを作成し、次のコマンドを使用します。

vue dom とはどういう意味ですか? vue dom とはどういう意味ですか? Dec 20, 2022 pm 08:41 PM

DOM はドキュメント オブジェクト モデルであり、HTML プログラミング用のインターフェイスであり、ページ内の要素は DOM を通じて操作されます。 DOM は HTML ドキュメントのメモリ内オブジェクト表現であり、JavaScript を使用して Web ページと対話する方法を提供します。 DOM は、ドキュメント ノードをルートとするノードの階層 (またはツリー) です。

Vue3 で DOM ノードを取得する方法は何ですか? Vue3 で DOM ノードを取得する方法は何ですか? May 11, 2023 pm 04:55 PM

1. ネイティブ js は DOM ノードを取得します。 document.querySelector (セレクター) document.getElementById (id セレクター) document.getElementsByClassName (クラス セレクター).... 2. vue2 で現在のコンポーネントのインスタンス オブジェクトを取得します。コンポーネント インスタンスには、対応する DOM 要素またはコンポーネントへの参照を保存する $refs オブジェクトが含まれています。したがって、デフォルトでは、コンポーネントの $refs は空のオブジェクトを指します。まず ref="name" をコンポーネントに追加してから、this.$refs を渡します。

vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? May 12, 2023 pm 01:28 PM

Vue3ref バインディング DOM またはコンポーネントの失敗理由分析シナリオの説明 Vue3 では、コンポーネントまたは DOM 要素をバインドするために ref を使用することがよくありますが、関連するコンポーネントをバインドするために ref が明確に使用されていることがよくありますが、ref バインディングが失敗することがよくあります。 ref バインディングが失敗する状況の例 ref バインディングが失敗するほとんどのケースは、ref がコンポーネントにバインドされているときにコンポーネントがまだレンダリングされていないため、バインディングが失敗することです。または、コンポーネントが最初にレンダリングされず、ref がバインドされていない場合、コンポーネントのレンダリングが開始されると、ref もバインドされ始めますが、ref とコンポーネントの間のバインディングが完了していません。このとき、問題が発生します。コンポーネント関連のメソッドを使用する場合。 ref にバインドされたコンポーネントが v-if を使用するか、その親コン​​ポーネントが v-if を使用してページに

PHP での DOM 操作ガイド PHP での DOM 操作ガイド May 21, 2023 pm 04:01 PM

Web 開発において、DOM (DocumentObjectModel) は非常に重要な概念です。これにより、開発者は要素の追加、削除、変更など、Web ページの HTML または XML ドキュメントを簡単に変更および操作できるようになります。 PHP に組み込まれている DOM 操作ライブラリも開発者向けに豊富な機能を提供していますので、この記事では、皆様のお役に立てればと思い、PHP での DOM 操作ガイドを紹介します。 DOM の基本概念 DOM は、クロスプラットフォームで言語に依存しない API です。

dom オブジェクトと bom オブジェクトとは何ですか? dom オブジェクトと bom オブジェクトとは何ですか? Nov 13, 2023 am 10:52 AM

DOM オブジェクトは「ドキュメント」、「要素」、「ノード」、「イベント」、「ウィンドウ」の 5 つ、2.「ウィンドウ」、「ナビゲーター」、「場所」、「履歴」、「画面」、その他 5 つです。 BOM オブジェクト。

ボムとドムの違いは何ですか ボムとドムの違いは何ですか Nov 13, 2023 pm 03:23 PM

BOM と DOM は、役割と機能、JavaScript との関係、相互依存性、さまざまなブラウザーの互換性、セキュリティ上の考慮事項の点で異なります。詳細な紹介: 1. 役割と機能: BOM の主な機能はブラウザ ウィンドウを操作することであり、ブラウザ ウィンドウへの直接アクセスと制御を提供しますが、DOM の主な機能は Web ドキュメントをオブジェクト ツリーに変換し、開発者は、このオブジェクト ツリーを使用して Web ページの要素やコンテンツを取得および変更します。 2. JavaScript などとの関係

純粋な CSS を通じて画像カルーセル効果を実現する方法とテクニック 純粋な CSS を通じて画像カルーセル効果を実現する方法とテクニック Oct 18, 2023 am 08:27 AM

純粋な CSS を通じて画像カルーセル効果を実現する方法とテクニック。現代の Web デザインでは、画像カルーセル効果は複数の画像や広告を順番に表示するためによく使用されます。画像カルーセル効果を実現するにはさまざまな方法がありますが、一般的な方法の 1 つは CSS アニメーションを使用することです。この記事では、純粋な CSS を通じて画像カルーセル効果を実現する方法とテクニックを紹介し、具体的なコード例を示します。 1. HTML の構造 まず、カルーセルの画像要素を HTML で用意する必要があります。簡単な HTML 構造の例を次に示します: &l

See all articles