當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS實(shí)現(xiàn)拖曳任意對(duì)象

JS實(shí)現(xiàn)拖曳任意對(duì)象

2012/11/12 13:02:53作者:佚名來(lái)源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱(chēng)】

JS實(shí)現(xiàn)拖曳任意對(duì)象

【實(shí)例描述】

網(wǎng)頁(yè)中可能經(jīng)常遇到需要拖曳div或table的情況。本例學(xué)習(xí)一種方法,可實(shí)現(xiàn)對(duì)任意對(duì)象的拖曳。

【實(shí)例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標(biāo)題頁(yè)-學(xué)無(wú)憂(yōu)(www.yzddtk.cn)</title> <script LANGUAGE="JavaScript"> function DragEvent() {  //參數(shù)  //x,y 開(kāi)始時(shí)的鼠標(biāo)在對(duì)象中的偏移位置  //DargFlag 0:拖曳停止 1:拖曳開(kāi)始  this.x = 0;  this.y = 0;  this.DragFlag=0; } var DragObject  = new DragEvent();

function DragMoveObject(obj) {  if(event.button == 1)    //如果按下的是鼠標(biāo)左鍵  {   obj.style.position="absolute";  //設(shè)置對(duì)象為絕對(duì)定位模式   if(DragObject.DragFlag==0)   //拖曳開(kāi)始   {     DragObject.DragFlag = 1;    DragObject.x = event.offsetX; //鼠標(biāo)的x坐標(biāo)    DragObject.y = event.offsetY; //鼠標(biāo)的y坐標(biāo)   }   obj.style.left = event.x-DragObject.x;  //保持鼠標(biāo)在對(duì)象中的位置不變   obj.style.top = event.y-DragObject.y;  }  else  {   DragObject.DragFlag = 0;  //拖曳停止  } } </script> </head> <body> <textarea cols="30" rows="5" onmousedown="DragMoveObject(this);" > </textarea><br /> <input type=button value="拖拽"  onmousedown="DragMoveObject(this);" /> <input id="Button1" type="button" value="button"onmousedown="DragMoveObject(this);"  /> </body> </html>

【運(yùn)行效果】

 拖曳任意對(duì)象運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)是捕獲鼠標(biāo)的移動(dòng)坐標(biāo),然后設(shè)置指定標(biāo)簽的坐標(biāo)跟隨鼠標(biāo)的坐標(biāo)。判斷是否按下鼠標(biāo)使用的條件是“event.button==1”。

【源碼下載】

為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:JS實(shí)現(xiàn)拖曳任意對(duì)象 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: 對(duì)象  JS