Javascript实现的类似Google的Div拖动效果代码_javascript技巧
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文件:
|
|
| |||
| | | |||
| | |

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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 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

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 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

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 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

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

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
