この体験では、ネイティブ JavaScript を使用して Web ページ要素のドラッグ アンド ドロップを実装する方法と、ドラッグ アンド ドロップの高度なコンテンツについて説明します。
1. HTML と CSS コードを自分で追加します。
JavaScriptコードは次のとおりです:
<script> window.onload=function () { var oDiv=document.getElementById('div1'); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev) { var oEvent=ev||event; oDiv.style.left=oEvent.clientX-disX+'px'; oDiv.style.top=oEvent.clientY-disY+'px'; }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; }; }; }; </script>
ドラッグコードのカプセル化と呼び出し
<script> window.onload=function () { drag('div1'); drag('div2'); drag('div3'); };function drag(id){ var oDiv=document.getElementById(id); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev) { var oEvent=ev||event; oDiv.style.left=oEvent.clientX-disX+'px'; oDiv.style.top=oEvent.clientY-disY+'px'; }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; }; };} </script>
仮想フレームを使用したドラッグアドバンス
1は、Webページ上で実現できます。ドラッグすると写真のような効果が得られます。
JavaScriptコード:
<script> window.onload=function (){ var oDiv=document.getElementById('div1'); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; var oNewDiv=document.createElement('div'); oNewDiv.className='box'; oNewDiv.style.width=oDiv.offsetWidth-2+'px'; oNewDiv.style.height=oDiv.offsetHeight-2+'px'; oNewDiv.style.left=oDiv.offsetLeft+'px'; oNewDiv.style.top=oDiv.offsetTop+'px'; document.body.appendChild(oNewDiv); document.onmousemove=function (ev) { var oEvent=ev||event; oNewDiv.style.left=oEvent.clientX-disX+'px'; oNewDiv.style.top=oEvent.clientY-disY+'px'; }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; oDiv.style.left=oNewDiv.style.left; oDiv.style.top=oNewDiv.style.top; document.body.removeChild(oNewDiv); }; };}; </script>
ドラッグしてサイズを変更します
1. 変更する要素の右下隅をドラッグします。要素のサイズ、右下隅は非常に小さい画像です。
JavaScript コード:
<script> window.onload=function (){ var oDiv=document.getElementById('div1'); var oDiv2=document.getElementById('div2'); oDiv.onmousedown=function (ev){ var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev){ var oEvent=ev||event; oDiv2.style.width=oEvent.clientX-disX+oDiv.offsetWidth+'px'; oDiv2.style.height=oEvent.clientY-disY+oDiv.offsetHeight+'px'; }; document.onmouseup=function (){ document.onmousemove=null; document.onmouseup=null; }; };}; </script>
ドラッグ高度な衝突検出
1 図に示すように、赤いブロックは黄色のブロックに接触するまで色が変わりません。タッチすると黄色のブロックの色が変わりました。
JavaScriptコード:
<script> window.onload=function (){ var oDiv=document.getElementById('div1'); var oDiv2=document.getElementById('div2'); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev) { var oEvent=ev||event; oDiv.style.left=oEvent.clientX-disX+'px'; oDiv.style.top=oEvent.clientY-disY+'px'; var l1=oDiv.offsetLeft; var r1=oDiv.offsetLeft+oDiv.offsetWidth; var t1=oDiv.offsetTop; var b1=oDiv.offsetTop+oDiv.offsetHeight; var l2=oDiv2.offsetLeft; var r2=oDiv2.offsetLeft+oDiv2.offsetWidth; var t2=oDiv2.offsetTop; var b2=oDiv2.offsetTop+oDiv2.offsetHeight; if(r1<l2 || l1>r2 || b1<t2 || t1>b2) { oDiv2.style.background='yellow'; } else { oDiv2.style.background='green'; } }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; }; };}; </script>
ドラッグによる高度な境界線の吸着を実装します
1.ドキュメントの境界線への吸着、JavaScript コード:
<script> window.onload=function (){ var oDiv=document.getElementById('div1'); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev) { var oEvent=ev||event; var l=oEvent.clientX-disX; var t=oEvent.clientY-disY; if(l<50) { l=0; } else if(l>document.documentElement.clientWidth-oDiv.offsetWidth-50) { l=document.documentElement.clientWidth-oDiv.offsetWidth; } if(t<50) { t=0; } else if(t>document.documentElement.clientHeight-oDiv.offsetHeight-50) { t=document.documentElement.clientHeight-oDiv.offsetHeight; } oDiv.style.left=l+'px'; oDiv.style.top=t+'px'; }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; }; };}; </script>
ドラッグアンドドロップの制限された範囲
1.実装ブロックは固定領域内でのみドラッグでき、ドキュメントの外にドラッグすることはできません。 JavaScript コード:
<script> window.onload=function (){ var oDiv=document.getElementById('div1'); oDiv.onmousedown=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.onmousemove=function (ev) { var oEvent=ev||event; var l=oEvent.clientX-disX; var t=oEvent.clientY-disY; if(l<0) { l=0; } else if(l>document.documentElement.clientWidth-oDiv.offsetWidth) { l=document.documentElement.clientWidth-oDiv.offsetWidth; } if(t<0) { t=0; } else if(t>document.documentElement.clientHeight-oDiv.offsetHeight) { t=document.documentElement.clientHeight-oDiv.offsetHeight; } oDiv.style.left=l+'px'; oDiv.style.top=t+'px'; }; document.onmouseup=function () { document.onmousemove=null; document.onmouseup=null; }; };}; </script>
以上がJavaScript を使用して Web ページにドラッグ アンド ドロップを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。