div上下循环移动
2016-07-23 15:00
447 查看
(function() { //向下移动 var divContainer = document.getElementById('container'); var listOfDiv = divContainer.getElementsByTagName('div'); for(var i = 0; i < listOfDiv.length; ++i) { listOfDiv[i].currentIndex = i; var downBtn = document.createElement('button'); downBtn.className = 'btn down'; downBtn.innerHTML = '向下移动'; downBtn.onclick = function() { var div = this.parentNode; var index = div.currentIndex; // 如果当前div已经是最后一个div,那么就把这个div放到所有div的开头 if(index === listOfDiv.length - 1) { // 找到第一个div var firstDiv = listOfDiv[0]; div.parentNode.insertBefore(div, firstDiv); // 把移动到开头的div的currentIndex设置为0 div.currentIndex = 0; // 把除了开头以外的每个div,它的currentIndex属性都加1 for(var u = 1; u < listOfDiv.length; ++u) { listOfDiv[u].currentIndex = listOfDiv[u].currentIndex + 1; } } else { // 找到这个div的下一个div var nextDiv = div.parentNode.children[index + 1]; div.parentNode.insertBefore(div, div.parentNode.children[index + 2]); div.currentIndex = index + 1; // 将下一个div的currentIndex属性也修改为正确的 nextDiv.currentIndex = index; } }; listOfDiv[i].appendChild(downBtn); } //向上移动 for(var j = 0; j < listOfDiv.length; j++){ listOfDiv[j].currentIndex = j; var upBtn = document.createElement('button'); upBtn.className = 'btn up'; upBtn.innerHTML = '向上移动'; upBtn.onclick = function() { var div = this.parentNode; var index = div.currentIndex; // 如果当前div已经是最后一个div,那么就把这个div放到所有div的开头 if(index === 0) { // 找到最后一个div var lastDiv = listOfDiv[listOfDiv.length]; div.parentNode.insertBefore(div, lastDiv); // 把移动到开头的div的currentIndex设置为0 div.currentIndex = listOfDiv.length - 1; // 把除了开头以外的每个div,它的currentIndex属性都加1 for(var u = listOfDiv.length - 2; u >= 0; u--) { listOfDiv[u].currentIndex = listOfDiv[u].currentIndex - 1; } } else { // 找到这个div的下一个div var nextDiv = div.parentNode.children[index - 1]; div.parentNode.insertBefore(div, div.parentNode.children[index - 1]); div.currentIndex = index - 1; // 将下一个div的currentIndex属性也修改为正确的 nextDiv.currentIndex = index; } }; listOfDiv[j].appendChild(upBtn); } })();
相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- js数组实现图片轮播
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- 爆炸式的JS圆形浮动菜单特效代码
- js select常用操作控制代码
- JS实现不使用图片仿Windows右键菜单效果代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- node.js抓取并分析网页内容有无特殊内容的js文件
- PHP+JS实现大规模数据提交的方法
- 仿51JOB的地区选择效果(可选择多个地区)