Javascript kelas drag
Penulis:Eve Cole
Waktu Pembaruan:2009-06-11 16:31:49
<HTML>
<KEPALA>
<BAHASA SKRIP="JavaScript">
<!--
var Tarik = {
seks : 0,
sy : 0,
contoh : 0,
mata : 0,
lx : 0,
li : 0,
offsetX : 0,
offsetY : 0,
cdom : batal,
dapat diseret : salah,
dragFun : nol,
tarikan suhu : fungsi(){
Seret.seret.panggilan(Seret);
},
cache : {},
putCache : fungsi(kunci,v){
ini.cache[kunci] = v;
},
getCache : fungsi(kunci){
kembalikan ini.cache[kunci];
},
dragStart : fungsi(dfun,fn){
mencoba{
if(!ini.dragAble){
this.cdom = acara.srcElement?event.srcElement:event.target;
this.cdom.setCapture(benar);
this.sx = acara.screenX;
this.sy = acara.layarY;
this.ex = acara.screenX;
this.ey = acara.layarY;
this.lx = acara.screenX;
this.ly = acara.layarY;
this.dragAble = benar;
this.dragFun = dfun?dfun:null;
jika(fn){fn();}
this.cdom.attachEvent("onmousemove",Drag.tempDrag);
}
}menangkap(e){
ini.dragEnd();
}
},
tarik : fungsi(){
mencoba{
if(ini.dragAble){
this.ex = acara.screenX;
this.ey = acara.layarY;
ini.offsetX = ini.ex - ini.lx;
ini.offsetY = ini.ey - ini.ly;
if(ini.dragFun){ini.dragFun();}
ini.lx = ini.ex;
ini.ly = ini.ey;
}
}
menangkap(e){
this.dragEnd(null);
}
},
dragEnd : fungsi(fn){
if(ini.dragAble){
this.cdom.detachEvent("onmousemove",Drag.tempDrag);
this.cdom.releaseCapture();
this.ex = acara.screenX;
this.ey = acara.layarY;
this.dragAble = salah;
jika(fn){fn();}
}
ini.rilisDrag();
},
rilisDrag : fungsi(){
ini.ex = 0;
ini.ey = 0;
ini.sx = 0;
ini.sy = 0;
ini.cdom = null;
this.dragAble = salah;
ini.dragFun = null;
ini.cache = {};
}
};
fungsi mulai(){
var d = Drag.cdom.cloneNode(benar);
var pos = getBodyPos(Drag.cdom);
dengan(d.gaya){
posisi="mutlak";
kiri=pos.kiri;
top=pos.top;
filter='Alfa(Opacity="30")' ;
}
Seret.putCache("alo",d);
dokumen.body.appendChild(d);
}
fungsiing(){
var offx = Tarik.offsetX;
var offy = Tarik.offsetY;
var ke = Tarik.getCache("alo");
var l = ke.offsetLeft;
var t = ke.offsetTop;
dengan(ke.gaya){
kiri=l+offx;
atas=t+offy;
}
}
fungsi akhir(){
var cdom = Tarik.cdom;
var alo = Tarik.getCache("alo");
dengan (cdom.style)
{
kiri=alo.offsetKiri;
top=alo.offsetTop;
posisi="mutlak";
}
jika (alo)
dokumen.body.removeChild(alo);
}
fungsi getBodyPos(obj){
mencoba{
var l = obj.offsetLeft;
var t = obj.offsetTop;
while(obj.parentElement != dokumen.body){
obj = obj.parentElement;
var tl = obj.offsetLeft;
var tt = obj.offsetTop;
aku += tl;
t += tt;
}
kembali {kiri:l,atas:t};
}menangkap(e){
alert(e.pesan);
}
}
//-->
</SKRIP>
</KEPALA>
<TUBUH>
<div style="border:solid 1 #7FFFD4;lebar:300;tinggi:150;latar belakang:#3399FF;kursor:pindah;" onmousedown="Drag.dragStart(ing,start)" onmouseup="Drag.dragEnd(end)">
Uji Tarik Objek
</div>
</BODI>
</HTML>