Rumah hujung hadapan web tutorial js Javascript实现的类似Google的Div拖动效果代码_javascript技巧

Javascript实现的类似Google的Div拖动效果代码_javascript技巧

May 16, 2016 pm 06:03 PM
google

复制代码 代码如下:

JScript 文件:
//检测浏览器 MSIE Firefox
var ie=false,moz=false;
(function()
{//check the browser
var userAgent=navigator.userAgent;
if(userAgent.indexOf("MSIE")!=-1)
ie=true;
else if(userAgent.indexOf("Firefox")!=-1)
moz=true;
})();
//通过ID获得对象
function $E_ID(idString)
{
return document.getElementById(idString);
}
//通过Name获得对象
function $Es_Tag(tagName)
{
return document.getElementsByTagName(tagName);
}
//获得对象绝对位置 obj.offsetparent
function $GetInfo(o)
{
var to=new Object();
to.left=to.right=to.top=to.bottom=0;
var twidth=o.offsetWidth;
var theight=o.offsetHeight;
while(o)
{
to.left+=o.offsetLeft;
to.top+=o.offsetTop;
o=o.offsetParent;
}
to.right=to.left+twidth;
to.bottom=to.top+theight;
return to;
}
//鼠标点击对象确发事件
function $hitTest(obj,event)
{
obj=$GetInfo(obj);
var x=event.clientX;
var y=event.clientY;
if((x>=obj.left&&x=obj.top&&y return true;
else
 return false;
}
function Drag(event)
{
this.dragged=false;
this.ao=null;
this.tdiv=null;
this.fixLeft=0;
this.fixTop=0;
this.lastX=event.clientX;
this.lastY=event.clientY;
Drag.mm=null;
this.dragStart=function(event)
{
this.ao=ie?event.srcElement:(moz?event.target:null);
if(ie)
document.body.onselectstart=function()
{
  return false
  }
if(moz&&this.ao.nodeType==3)
 this.ao=this.ao.parentNode;
if(this.ao.tagName=="TD"||this.ao.tagName=="TR")
 this.ao=this.ao.offsetParent.parentNode;
else
 return;
if(this.ao.className!="dragdiv")
 return;
this.tdiv=$E_ID("tmpdiv");
this.tdiv.style.visibility="visible";
this.tdiv.style.filter="alpha(opacity=70)";
if(ie)
 this.tdiv.filters.alpha.opacity=70;
this.tdiv.style.opacity=0.7;
this.tdiv.style.zIndex=100;
this.tdiv.innerHTML=this.ao.innerHTML;
this.tdiv.style.width=this.ao.offsetWidth+"px";
this.tdiv.style.height=this.ao.offsetHeight+"px";
this.tdiv.style.top=$GetInfo(this.ao).top+"px";
this.tdiv.style.left=$GetInfo(this.ao).left+"px";
this.fixTop=parseInt($GetInfo(this.tdiv).top);
this.fixLeft=parseInt($GetInfo(this.tdiv).left);
this.dragged=true;
}
this.onDrag=function(event)
{
if((!this.dragged)||this.ao==null)return;
var tX=event.clientX;
var tY=event.clientY;
this.tdiv.style.left=parseInt(this.fixLeft+tX-this.lastX-document.body.scrollLeft)+"px";
this.tdiv.style.top=parseInt(this.fixTop+tY-this.lastY-document.body.scrollTop)+"px";
for(var m=0;m{
var rootCells=$E_ID("root").rows[m].cells;
for(var i=0;i{
if($hitTest(rootCells[i],event))
{
if(rootCells[i].hasChildNodes())
{
for(var j=0;j{
if($hitTest(rootCells[i].childNodes[j],event))
{
rootCells[i].insertBefore(this.ao,rootCells[i].childNodes[j]);
break;
}
}
if(j==rootCells[i].childNodes.length)
{
rootCells[i].appendChild(this.ao);break;
}
break;
}
else
{
rootCells[i].appendChild(this.ao);
break;
}
}
}
}
}
this.dragEnd=function()
{
if(this.dragged)
{
this.dragged=false;
Drag.mm=this.repos(150,15,this);
this.ao=null;
}
if(ie)document.body.onselectstart=function(){return true}
}
this.repos=function(aa,ab,obj)
{
if(ie)var f=obj.tdiv.filters.alpha.opacity;
else if(moz)var f=obj.tdiv.style.opacity*100;
var kf=f/ab;
var tl=parseInt($GetInfo(obj.tdiv).left);
var tt=parseInt($GetInfo(obj.tdiv).top);
var kl=(tl-$GetInfo(obj.ao).left)/ab;
var kt=(tt-$GetInfo(obj.ao).top)/ab;
return setInterval(function(){
if(ab{
clearInterval(Drag.mm);
obj.tdiv.style.visibility="hidden";
obj.tdiv.style.zIndex="";
return;
}
ab--;
tl-=kl;
tt-=kt;
f-=kf;
obj.tdiv.style.left=parseInt(tl)+"px";
obj.tdiv.style.top=parseInt(tt)+"px";
if(ie)obj.tdiv.filters.alpha.opacity=f;
else if(moz)obj.tdiv.style.opacity=f/100;
},aa/ab );
}
}
var tDrag=null;
function init(event)
{
// alert(event.target.innerHTML);
tDrag=new Drag(event);
tDrag.dragStart(event);
}
function move(event)
{
if(tDrag!=null)tDrag.onDrag(event);
}
function end()
{
if(tDrag!=null){
tDrag.dragEnd();
tDrag=null;
}
}
Asp.net文件:




Div拖动





























可移动DIV1

点击即可开始拖动!









可移动DIV2

点击即可开始拖动!









可移动DIV3

点击即可开始拖动!











Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Google Pixel 9 dan Pixel 9 Pro dikhabarkan akan memperoleh Creative Assistant AI selepas dikeluarkan Google Pixel 9 dan Pixel 9 Pro dikhabarkan akan memperoleh Creative Assistant AI selepas dikeluarkan Jun 22, 2024 am 10:50 AM

Pada masa ini, empat telefon pintar Pixel baharu dijangka mendarat pada musim luruh ini. Untuk mengimbas kembali, siri ini dikhabarkan akan menampilkan Pixel 9 dan Pixel 9 Pro semasa pelancaran. Walau bagaimanapun, Pixel 9 Pro akan menjadi saingan kepada iPhone 16 Pro dan bukannya Pixel 8 Pro (curr

Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun Jul 01, 2024 am 07:22 AM

Google AI telah mula menyediakan pembangun akses kepada tetingkap konteks lanjutan dan ciri penjimatan kos, bermula dengan model bahasa besar (LLM) Gemini 1.5 Pro. Sebelum ini tersedia melalui senarai tunggu, penuh 2 juta token konteks windo

Pembongkaran APK beta apl Google mendedahkan sambungan baharu yang akan datang kepada pembantu AI Gemini Pembongkaran APK beta apl Google mendedahkan sambungan baharu yang akan datang kepada pembantu AI Gemini Jul 30, 2024 pm 01:06 PM

Pembantu AI Google, Gemini, bersedia untuk menjadi lebih berkebolehan, jika pembongkaran APK bagi kemas kini terkini (v15.29.34.29 beta) perlu dipertimbangkan. Pembantu AI baharu raksasa teknologi itu dilaporkan boleh mendapatkan beberapa sambungan baharu. Sambungan ini wi

Google Tensor G4 bagi Pixel 9 Pro XL ketinggalan di belakang Tensor G2 dalam Genshin Impact Google Tensor G4 bagi Pixel 9 Pro XL ketinggalan di belakang Tensor G2 dalam Genshin Impact Aug 24, 2024 am 06:43 AM

Google baru-baru ini bertindak balas terhadap kebimbangan prestasi mengenai Tensor G4 barisan Pixel 9. Syarikat itu berkata bahawa SoC tidak direka untuk mengalahkan penanda aras. Sebaliknya, pasukan memberi tumpuan untuk menjadikannya berprestasi baik di kawasan yang Google mahukan c

Telefon pintar Google Pixel 9 tidak akan dilancarkan dengan Android 15 walaupun terdapat komitmen kemas kini selama tujuh tahun Telefon pintar Google Pixel 9 tidak akan dilancarkan dengan Android 15 walaupun terdapat komitmen kemas kini selama tujuh tahun Aug 01, 2024 pm 02:56 PM

Siri Pixel 9 hampir tiba, telah dijadualkan untuk keluaran 13 Ogos. Berdasarkan khabar angin baru-baru ini, Pixel 9, Pixel 9 Pro dan Pixel 9 Pro XL akan mencerminkan Pixel 8 dan Pixel 8 Pro (sekira $749 di Amazon) dengan bermula dengan storan 128 GB.

Google Pixel 9 Pro XL diuji dengan mod desktop Google Pixel 9 Pro XL diuji dengan mod desktop Aug 29, 2024 pm 01:09 PM

Google telah memperkenalkan Mod Ganti DisplayPort dengan siri Pixel 8, dan ia hadir pada barisan Pixel 9 yang baru dilancarkan. Walaupun ia terdapat terutamanya untuk membolehkan anda mencerminkan paparan telefon pintar dengan skrin yang disambungkan, anda juga boleh menggunakannya untuk desktop

Mod desktop Google Pixel baharu dipamerkan dalam video baharu yang mungkin alternatif Motorola Ready For dan Samsung DeX Mod desktop Google Pixel baharu dipamerkan dalam video baharu yang mungkin alternatif Motorola Ready For dan Samsung DeX Aug 08, 2024 pm 03:05 PM

Beberapa bulan telah berlalu sejak Pihak Berkuasa Android menunjukkan mod desktop Android baharu yang telah disembunyikan oleh Google dalam Android 14 QPR3 Beta 2.1. Tiba di hadapan Google menambah sokongan Mod Alt DisplayPort untuk Pixel 8 dan Pixel 8

Google membuka AI Test Kitchen & Imagen 3 kepada kebanyakan pengguna Google membuka AI Test Kitchen & Imagen 3 kepada kebanyakan pengguna Sep 12, 2024 pm 12:17 PM

Dapur Uji AI Google, yang merangkumi set alatan reka bentuk AI untuk dimainkan oleh pengguna, kini telah dibuka kepada pengguna di lebih 100 negara di seluruh dunia. Langkah ini menandakan kali pertama ramai di seluruh dunia akan dapat menggunakan Imagen 3, Google

See all articles