js 鼠標(biāo)拖動(dòng)對(duì)象 可讓任何div實(shí)現(xiàn)拖動(dòng)效果
更新時(shí)間:2009年11月09日 16:49:21 作者:
js鼠標(biāo)拖動(dòng)對(duì)象,可讓任何div實(shí)現(xiàn)拖動(dòng)效果,需要的朋友可以參考下。
js鼠標(biāo)拖動(dòng)對(duì)象:
//定義鼠標(biāo)拖動(dòng)對(duì)象
drag=function (a,o){
var d=document;if(!a)a=window.event;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
var x=a.pageX,y=a.pageY;
if(o.setCapture)
o.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
var backData = {x : o.style.top, y : o.style.left};
d.onmousemove=function(a){
if(!a)a=window.event;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
var tx=a.pageX-x+parseInt(o.style.left),ty=a.pageY-y+parseInt(o.style.top);
o.style.left=tx+"px";
o.style.top=ty+"px";
x=a.pageX;
y=a.pageY;
};
d.onmouseup=function(a){
if(!a)a=window.event;
if(o.releaseCapture)
o.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
if(!document.body.pageWidth)document.body.pageWidth=document.body.clientWidth;
if(!document.body.pageHeight)document.body.pageHeight=document.body.clientHeight;
if(a.pageX < 1 || a.pageY < 1 || a.pageX > document.body.pageWidth || a.pageY > document.body.pageHeight){
o.style.left = backData.y;
o.style.top = backData.x;
}
};
}
使用方法:
<div id="divPhoto" onmousedown="drag(event,this)"></div>
復(fù)制代碼 代碼如下:
//定義鼠標(biāo)拖動(dòng)對(duì)象
drag=function (a,o){
var d=document;if(!a)a=window.event;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
var x=a.pageX,y=a.pageY;
if(o.setCapture)
o.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
var backData = {x : o.style.top, y : o.style.left};
d.onmousemove=function(a){
if(!a)a=window.event;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
var tx=a.pageX-x+parseInt(o.style.left),ty=a.pageY-y+parseInt(o.style.top);
o.style.left=tx+"px";
o.style.top=ty+"px";
x=a.pageX;
y=a.pageY;
};
d.onmouseup=function(a){
if(!a)a=window.event;
if(o.releaseCapture)
o.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
if(!a.pageX)a.pageX=a.clientX;
if(!a.pageY)a.pageY=a.clientY;
if(!document.body.pageWidth)document.body.pageWidth=document.body.clientWidth;
if(!document.body.pageHeight)document.body.pageHeight=document.body.clientHeight;
if(a.pageX < 1 || a.pageY < 1 || a.pageX > document.body.pageWidth || a.pageY > document.body.pageHeight){
o.style.left = backData.y;
o.style.top = backData.x;
}
};
}
使用方法:
復(fù)制代碼 代碼如下:
<div id="divPhoto" onmousedown="drag(event,this)"></div>
您可能感興趣的文章:
- js實(shí)現(xiàn)可拖動(dòng)DIV的方法
- javascript div 彈出可拖動(dòng)窗口
- 利用javascript移動(dòng)div層-javascript 拖動(dòng)層
- js通過八個(gè)點(diǎn) 拖動(dòng)改變div大小的實(shí)現(xiàn)方法
- js拖動(dòng)div 當(dāng)鼠標(biāo)移動(dòng)時(shí)整個(gè)div也相應(yīng)的移動(dòng)
- javascript 可以拖動(dòng)的DIV(二)
- Javascript實(shí)現(xiàn)的類似Google的Div拖動(dòng)效果代碼
- JavaScript實(shí)現(xiàn)可拖拽的拖動(dòng)層Div實(shí)例
- javascript實(shí)現(xiàn)div的拖動(dòng)并調(diào)整大小類似qq空間個(gè)性編輯模塊
- js實(shí)現(xiàn)div色塊拖動(dòng)錄制
相關(guān)文章
談?wù)勎覍?duì)JavaScript中typeof和instanceof的深入理解
這次主要說說javascript的類型判斷函數(shù)typeof和判斷構(gòu)造函數(shù)原型instanceof的用法和注意的地方,對(duì)本文感興趣的朋友一起看看吧2015-12-12JS.elementGetStyle(element, style)應(yīng)用示例
獲取Dom元素的Style數(shù)組中的指定Style元素,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-09-09javascript一些不錯(cuò)的函數(shù)腳本代碼
收集一些不多見的好用的自定義函數(shù)代碼 計(jì)算字符長(zhǎng)度的js函數(shù) 去字符中前后的空格的js函數(shù) 圖片自適應(yīng)大小函數(shù)代碼2008-09-09靜態(tài)頁(yè)面也可以實(shí)現(xiàn)預(yù)覽 列表不同的顯示方式
靜態(tài)頁(yè)面也可以實(shí)現(xiàn)預(yù)覽 列表不同的顯示方式...2006-10-10JS實(shí)現(xiàn)淡藍(lán)色簡(jiǎn)潔豎向Tab點(diǎn)擊切換效果
這篇文章主要介紹了JS實(shí)現(xiàn)淡藍(lán)色簡(jiǎn)潔豎向Tab點(diǎn)擊切換效果,通過JavaScript相應(yīng)鼠標(biāo)事件實(shí)現(xiàn)非常簡(jiǎn)單的css樣式切換,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-10-10