編程(Programming)是編定程序的中文簡稱,就是讓計(jì)算機(jī)代碼解決某個(gè)問題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計(jì)算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過程就是編程。 【實(shí)例名稱】 JS實(shí)現(xiàn)拖曳任意對(duì)象 【實(shí)例描述】 網(wǎng)頁中可能經(jīng)常遇到需要拖曳div或table的情況。本例學(xué)習(xí)一種方法,可實(shí)現(xiàn)對(duì)任意對(duì)象的拖曳。 【實(shí)例代碼】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>標(biāo)題頁-本站(www.xue51.com)</title>
<script LANGUAGE="JavaScript">
function DragEvent()
{
//參數(shù)
//x,y 開始時(shí)的鼠標(biāo)在對(duì)象中的偏移位置
//DargFlag 0:拖曳停止 1:拖曳開始
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)
//拖曳開始
{
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)行效果】  【難點(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)確性,請點(diǎn)擊:JS實(shí)現(xiàn)拖曳任意對(duì)象 進(jìn)行本實(shí)例源碼下載
使用編程語言寫的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |