編程(Programming)是編定程序的中文簡稱,就是讓計算機(jī)代碼解決某個問題,對某個計算體系規(guī)定一定的運(yùn)算方式,使計算體系按照該計算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機(jī)能夠理解的形式告訴計算機(jī),使得計算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計算體系之間交流的過程就是編程。 【實例名稱】 JS代碼實現(xiàn)動態(tài)拖放表格的寬度 【實例描述】 表格的寬度一般在頁面設(shè)計時被靜態(tài)指定:本例學(xué)習(xí)如何在頁面運(yùn)行時,動態(tài)改變表格的寬度。 【實例代碼】 <html>
<head>
<title>Untitled Document-本站(www.xue51.com)</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
var dragenable=false;
var x;
var y;
var w;
var h;
var obj;
function init()
{
x=event.clientX+document.body.scrollLeft;
//獲取x坐標(biāo)
obj=event.srcElement;
//獲取鼠標(biāo)觸發(fā)的元素
w=event.srcElement.offsetWidth;
//對象的寬度
obj.setCapture();
//接受鼠標(biāo)消息
if(x>event.srcElement.offsetLeft+w-5 &&
x<event.srcElement.offsetLeft+w) {
//鼠標(biāo)移動到對象邊界時
dragenable=true;obj.style.cursor='e-resize';}
//改變鼠標(biāo)的樣式-左右拖動型
}
function drag()
{
if(event.clientX+document.body.scrollLeft>event.
srcElement.offsetLeft+event.srcElement.offsetWidth-5 &&
event.clientX+document.body.scrollLeft<event.
srcElement.offsetLeft+event.srcElement.offsetWidth)
{event.srcElement.style.cursor='e-resize';}
//改變鼠標(biāo)的樣式-左右拖動型
else
event.srcElement.style.cursor='default';
//改變鼠標(biāo)的樣式-默認(rèn)型
if(dragenable==true) {
if(event.clientX+document.body.scrollLeft-x+w>0) {
var i=obj.cellIndex;
var j;
for(j=0;j<obj.parentNode.parentNode.rows.length;j++) {
//更改表格的寬度
obj.parentNode.parentNode.rows[j].cells[i].width=
event.clientX+document.body.scrollLeft-x+w;
}
}
else {
var i=obj.cellIndex;
var j;
for(j=0;j<obj.parentNode.parentNode.rows.length;j++) {
obj.parentNode.parentNode.rows[j].cells[i].width=1;
//最小也要保持寬度為1
}
}
}
}
function end()
//結(jié)束更改
{
dragenable=false;
obj.releaseCapture();
//釋放鼠標(biāo)的捕獲
obj.style.cursor='default';
//更改鼠標(biāo)的樣式為默認(rèn)
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin=0 topmargin=0>
表格寬度設(shè)置為百分比顯示
<br>
<table width="60%" border="1" cellpadding="0"
cellspacing="2" onmousedown=init() onmouseup=end()
onmousemove=drag() id=table1 style="table-layout:fixed">
<tr>
<td height="18" align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
</tr>
<tr>
<td height="18" align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
</tr>
<tr>
<td height="18" align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
</tr>
<tr>
<td height="18" align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
<td align="top"> </td>
</tr>
</table>
</body>
</html>
【運(yùn)行效果】 
【難點剖析】 本例的重點其實是鼠標(biāo)坐標(biāo)的獲取。代碼中使用_“event.srcElement”獲取鼠標(biāo)操作的對象,然后使用“offsetWidth”獲取該對象的寬度。當(dāng)鼠標(biāo)移動到表格邊界時,再動態(tài)改變鼠標(biāo)的樣式。 【源碼下載】 如果你不愿復(fù)制代碼及提高代碼準(zhǔn)確性,你可以點擊:動態(tài)拖放表格的寬度 進(jìn)行本實例源碼下載
使用編程語言寫的程序,由于每條指令都對應(yīng)計算機(jī)一個特定的基本動作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |