編程(Programming)是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,并最終得到相應結果的過程。為了使計算機能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。 【實例名稱】 JS代碼實現動態拖放表格的寬度 【實例描述】 表格的寬度一般在頁面設計時被靜態指定:本例學習如何在頁面運行時,動態改變表格的寬度。 【實例代碼】 <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坐標
obj=event.srcElement;
//獲取鼠標觸發的元素
w=event.srcElement.offsetWidth;
//對象的寬度
obj.setCapture();
//接受鼠標消息
if(x>event.srcElement.offsetLeft+w-5 &&
x<event.srcElement.offsetLeft+w) {
//鼠標移動到對象邊界時
dragenable=true;obj.style.cursor='e-resize';}
//改變鼠標的樣式-左右拖動型
}
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';}
//改變鼠標的樣式-左右拖動型
else
event.srcElement.style.cursor='default';
//改變鼠標的樣式-默認型
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()
//結束更改
{
dragenable=false;
obj.releaseCapture();
//釋放鼠標的捕獲
obj.style.cursor='default';
//更改鼠標的樣式為默認
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin=0 topmargin=0>
表格寬度設置為百分比顯示
<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>
【運行效果】 
【難點剖析】 本例的重點其實是鼠標坐標的獲取。代碼中使用_“event.srcElement”獲取鼠標操作的對象,然后使用“offsetWidth”獲取該對象的寬度。當鼠標移動到表格邊界時,再動態改變鼠標的樣式。 【源碼下載】 如果你不愿復制代碼及提高代碼準確性,你可以點擊:動態拖放表格的寬度 進行本實例源碼下載
使用編程語言寫的程序,由于每條指令都對應計算機一個特定的基本動作,所以程序占用內存少、執行效率高。 |