ホームページ ウェブフロントエンド jsチュートリアル ドラッグ可能な div 実装コード_JavaScript スキル

ドラッグ可能な div 実装コード_JavaScript スキル

May 16, 2016 pm 06:51 PM
div 引っ張る

ドラッグ可能な p は、特にブラウザが js コードに対して十分に効率的ではない場合に達成するのが比較的困難です。ただし、Firefox の js サポートが増加していると聞きました。おそらく、js が重要な役割を果たしているのでしょう。デスクトップでの Web ブラウジングのトレンドに。

p の任意のドラッグを実現するには、プロセス全体を分析した方がよいでしょう。
マウスが p をクリックすると、イベントがトリガーされ、マウスの位置に応じて p の位置属性 (左、上) が変化し、マウスを放したときの位置が p の位置属性に使用されます。 。
マウスのクリック時にイベントをトリガーするのは簡単です。onmouseclick を p タグに追加します。ここで解決しなければならない問題は、マウスの位置に応じて p の位置を変更する方法です。
これは非常に単純な推論プロセスかもしれませんが、明確にしておきましょう。 p の左上と p の左上隅の座標です。p にマウスを移動してクリックすると、このときマウスの座標と p の座標は一致しません。 p の座標をマウスの座標と同じにするだけでは、効果はそれほど完璧には見えません。そのため、まずマウスの座標と p 座標の差を取得し、次にマウスがその座標に移動したときに、この差をマウス座標から減算して p 座標を取得します (よく理解していない場合は、まず Web ページの基本を学習してください)。
次は簡単です。マウスが移動すると、p の座標が継続的に計算され、マウスが放されると、このイベントが削除されます。
js 関数全体は次のとおりです。
function beginDrag(elementToDrag,event)
{
var deltaX=event.clientX-parseInt(elementToDrag.style.left); events.clientY -parseInt(elementToDrag.style.top);
if(document.addEventListener)
{
document.addEventListener("mousemove",moveHandler,true); Mouseup", upHandler,true);
//document.addEventListener("mouseout",upHandler,true);
}
else if(document.attachEvent)
{
document.attachEvent ("onmousemove ",moveHandler);
document.attachEvent("onmouseup",upHandler);
//document.attachEvent("onmouseout",upHandler);
if(event.stopPropagation) ) イベント。
{
if (!e) e=window.event; //IE イベント オブジェクトの場合は window.event を使用します。
//グローバル属性を使用し、それ以外の場合は DOM の二次標準 Event オブジェクトを使用します。
elementToDrag.style.left=(e.clientX-deltaX) ”px”;
elementToDrag.style.top=(e.clientY-deltaY) ”px”;
if(e.stopPropagation) .stopPropagation();
else e.cancelBubble=true;
}
関数 upHandler(e)
{
if(document.removeEventListener)
{
document.removeEventListener ("mouseup",upHandler,true);
document.removeEventListener("mousemove",moveHandler,true);}
else
{
document.detachEvent("onmouseup",upHandler); 🎜>document.detachEvent("onmousemove",moveHandler);}
}
if (!e) e=window.event;
if(e.stopPropagation) e.stopPropagation(); else e.cancelBubble=true;
}

このpドラッグを実装したjs関数について、実際に先輩がネット上で公開していたものを抜粋し、注釈を付けておきます。
function beginDrag(elementToDrag,event)
{
var =event.clientX-parseInt(elementToDrag.style.left);
var deltaY=event.clientY-parseInt(elementToDrag.style.top) ;
//ここでの deltaX/Y は、実際にはマウスと p の間の座標の差です。
if(document.addEventListener)
//ここでこのような判定を加えているのは、IE6 と Firefox では JavaScript イベント処理の方式が異なるためです (IE7 以降のバージョンは W3C 標準に準拠し始めています)。
//document.addEventlistener が true の場合、W3C DOM 標準をサポートするブラウザは Firefox などであり、IE6 ではイベントの登録に AttachEvent が使用されますが、Firefox などのブラウザでは addEventListener が使用されます。 addEventListener 関数の true パラメータは、イベントをキャプチャできることを示します。
{
document.addEventListener("mousemove",moveHandler,true);
document.addEventListener("mouseup",upHandler,true);
//document.addEventListener("mouseout",upHandler); , true);
}
else if(document.attachEvent)
{
document.attachEvent("onmousemove",moveHandler);
//document.attachEvent("onmouseout",upHandler);
if(event.stopPropagation)event.stopPropagation();
elseevent.cancelBubble=true;//The judgment here still takes into account different browsers. stopPropagation is a method used in the W3C DOM standard to cancel the propagation of events. We used the document.addEventListener method. The browser will propagate from the document object down the DOM node to the target node. The registered event handler will run, and then the event will be returned to the parent node. If the parent node also has a corresponding event handler, then the event will also be processed. In order to avoid this situation, we can use stopPropagation to prevent the propagation of the event. The function of this method is to make other elements invisible to this event. Under IE6, there is no process for elements to capture events, but there is a term called bubble process. The method used in IE6 is cancelBubble, which is used to cancel bubbles, indicating that the event has been processed and other elements no longer need to be seen.
if(event.preventDefault) event.preventDefault();
else event.returnValue=false;
//The preventDefault here is used to notify the browser not to perform the default action associated with the event, and returnValue is used to Cancel the default action of the source element where the event occurs. You should be able to see that this plays the same role in different browsers.
//The following are the key functions used in dragging p.
function moveHandler(e)
{
if (!e) e=window.event; //If it is an IE event object, then use window.event
//Global attributes, otherwise Just use the DOM second-level standard Event object.
//In IE, event is an attribute of window, which is a global variable, but in W3C DOM, event is an attribute of the document object where the event occurs. In this program, it doesn't matter what the event is. The key is that we need to obtain the coordinate value of the mouse. In IE, when the e parameter is passed in, IE cannot recognize it, so we assign e to window.event.
elementToDrag.style.left=(e.clientX-deltaX) ”px”;
elementToDrag.style.top=(e.clientY-deltaY) ”px”;
//Here is the change now The left and top attributes of p are used.
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble=true;
}
function upHandler(e)
{
if(document.removeEventListener)
{
document.removeEventListener("mouseup",upHandler,true);
document.removeEventListener("mousemove",moveHandler,true);
}
else
{
document.detachEvent("onmouseup",upHandler);
document.detachEvent("onmousemove",moveHandler);
}
//This function is used to remove the listener. It is relatively simple. I won’t go into details.
if (!e) e=window.event;
if(e.stopPropagation) e.stopPropagation();
else e.cancelBubble=true;
}
}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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 21, 2023 am 09:27 AM

JavaScript で画像の左右のドラッグ切り替え効果を実現するにはどうすればよいですか?最新の Web デザインでは、動的な効果によってユーザー エクスペリエンスと視覚的な魅力が向上します。画像の左右のドラッグ切り替え効果は一般的な動的効果であり、ユーザーは画像をドラッグすることで異なるコンテンツを切り替えることができます。この記事では、JavaScript を使用してこの画像切り替え効果を実現する方法と、具体的なコード例を紹介します。まず、複数の画像を含む画像を作成するための HTML および CSS コードを準備する必要があります。

JavaScript は、ページの表示領域に制限しながらポップアップ ボックスのドラッグを実装するにはどうすればよいでしょうか? JavaScript は、ページの表示領域に制限しながらポップアップ ボックスのドラッグを実装するにはどうすればよいでしょうか? Oct 18, 2023 pm 12:26 PM

JavaScript は、ポップアップ ボックスをページの表示領域に制限しながら、ドラッグをどのように実装するのでしょうか? Web 開発では、ポップアップ ボックスやダイアログ ボックスを実装する必要があることがよくあります。一般的な要件の 1 つは、これらのポップアップ ボックスをページの表示領域に限定して自由にドラッグできるようにすることです。この記事では、JavaScript を使用してこの関数を実装する方法と、対応するコード例を紹介します。まず、いくつかの基本概念を理解する必要があります。 Web 開発では、ページの表示領域がウィンドウの幅になることがあります

JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか? JavaScript を使用して画像をコンテナ内に制限しながらドラッグしたりズームしたりするにはどうすればよいですか? Oct 20, 2023 pm 04:19 PM

JavaScript はコンテナ内に限定しながら画像のドラッグとズームをどのように実装するのでしょうか? Web 開発では、画像をドラッグしてズームする必要がよくあります。この記事では、JavaScriptを使用して画像のドラッグやズーム、コンテナ内での操作を制限する方法を紹介します。 1. 画像をドラッグする 画像をドラッグするには、マウス イベントを使用してマウスの位置を追跡し、それに応じて画像の位置を移動します。以下はサンプルコードです: //ピクチャ要素 varimage を取得します。

CSSを使用してdivの角が欠けていることを認識する方法 CSSを使用してdivの角が欠けていることを認識する方法 Jan 30, 2023 am 09:23 AM

div の角が欠けていることを認識するための CSS メソッド: 1. HTML サンプル ファイルを作成し、div を定義します; 2. div の幅と高さの背景色を設定します; 3. 削除する必要がある div に疑似クラスを追加します隅に配置し、擬似クラスを背景色と同じ色を使用するように設定し、45 度回転して、削除する必要がある隅に配置します。

ChatGPT APIに基づくワードマーキング翻訳ブラウザスクリプトの実装 ChatGPT APIに基づくワードマーキング翻訳ブラウザスクリプトの実装 May 01, 2023 pm 03:28 PM

はじめに 最近 GitHub に ChatGPTAPI をベースにしたブラウザスクリプト openai-translator が登場しました 短期間でスターが 12k に達しました 翻訳だけでなく磨きや要約機能もサポートしています ブラウザプラグに加えて-ins, tauri パッケージも使用します。デスクトップ クライアントをお持ちの場合は、tauri が Rust 部分を使用するという事実を除けば、ブラウザ部分の実装はまだ比較的簡単です。今日は手動で実装します。 openAI によって提供されるインターフェイス。たとえば、次のコードをコピーし、ブラウザ コンソールでリクエストを開始して変換を完了できます。 //Example constOPENAI_API_KEY="s

コンテナに限定され、アスペクト比と中央表示を維持しながら、画像のドラッグとズームをJavaScriptで実装するにはどうすればよいですか? コンテナに限定され、アスペクト比と中央表示を維持しながら、画像のドラッグとズームをJavaScriptで実装するにはどうすればよいですか? Oct 20, 2023 pm 01:34 PM

JavaScript は、コンテナに限定され、アスペクト比と中央表示を維持しながら、画像のドラッグとズームをどのように実装しますか?最近の Web 開発では、コンテナ内での画像のドラッグ、拡大縮小、制限は非常に一般的な要件です。今日は、画像のアスペクト比と中央表示を維持しながら、JavaScript を使用してこの機能を実装する方法を学びます。まず、画像とコンテナを表示するための HTML ページが必要です。 HTMLドキュメントには画像を表示するためのHTMLを必ず含めてください。

JavaScript を使用して画像を上下にドラッグする効果を実現するにはどうすればよいですか? JavaScript を使用して画像を上下にドラッグする効果を実現するにはどうすればよいですか? Oct 18, 2023 am 09:09 AM

JavaScript はどのようにして画像を上下にドラッグする効果を実現するのでしょうか?インターネットの発展により、写真は私たちの生活や仕事において重要な役割を果たしています。ユーザーエクスペリエンスを向上させるために、多くの場合、写真に特殊効果やインタラクティブ効果を追加する必要があります。その中でも、画像を上下にドラッグして切り替えるエフェクトは非常に一般的でシンプルで実用的なエフェクトです。この記事では、JavaScript を使用してこの効果を実現する方法を紹介し、具体的なコード例を示します。まず、画像を表示し、ドラッグを実装するための HTML ファイルを作成する必要があります。

divとspanの違いは何ですか? divとspanの違いは何ですか? Nov 02, 2023 pm 02:29 PM

違いは次のとおりです: 1. div はブロックレベル要素であり、span はインライン要素です。2. div は自動的に行を占有しますが、span は自動的に折り返されません。3. div はより大きな構造とレイアウトを折り返すために使用されます。テキストまたは他のインライン要素をラップするために、span が使用されます。4. div には他のブロックレベル要素とインライン要素を含めることができ、span には他のインライン要素を含めることができます。

See all articles