2012-10-25 来源:网络
【实例名称】
JS代码改变列表项的上下顺序
【实例描述】
列表项的上下移动,是网页中经常使用的特效。本例通过一个简单的例子,学习这种特效的制作。
【实例代码】
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页-学无忧(www.xue51.com)</title> </head> <body> <select size="10" name="select"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> <input type=button value=向上移动 onclick="doUp()"> <input type=button value=向下移动 onclick="doDown()"> <script> function doOrder(select,sequence) //将上、下两个方法合并成一个 { if (!select||select.selectedIndex==-1) //如果没有选择列表项,不进行任何操作 return false; with (select) { var newIndex = selectedIndex + sequence; //获取移动后的索引 var oldIndex = selectedIndex; //旧索引 if (newIndex>=options.length||newIndex<0||sequence==0||newIndex<0) //判断是否超出边界 { return false; } options[newIndex].swapNode(options[oldIndex]) //交换指定索引处的节点 } return true; } function doUp() { doOrder(document.all.select,-1); //向上移动的方法 } function doDown() { doOrder(document.all.select,1); //向下移动的方法 } </script> </body> </html>
【运行效果】
【难点剖析】
本例的重点是要移动的元素的旧位置和新位置,旧位置使用“selected Index”属性获取,新位置根据选择的是‘‘向上移动”还是“向下移动”,下就“+1”,上就“一1”。最后使用“swapNode’’方法实现新旧位置互换。
【源码下载】