基于jquery实现左右上下移动效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于jquery实现左右上下移动效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3942字,纯文字阅读大概需要6分钟。
内容图文
![基于jquery实现左右上下移动效果](/upload/InfoBanner/zyjiaocheng/338/bbc58b573dfa4846ae51f195379306aa.jpg)
最近再做报表时候,直接把全部字段都导出了,但这不太灵活。回忆老师讲过的项目做报表如下左右上下移功能灵活控制,所以就尝试下咯。
js代码
function selected(thiz) { var name = thiz.name; if(name=="right") $("select[name='left']").val(""); else $("select[name='right']").val(""); } function Shift(thiz) { var right = $("select[name='right']"); var left = $("select[name='left']"); if(thiz=="left" && right.val() != ""){ lrShift(right,left); }else if(thiz=="right" && left.val() != ""){ lrShift(left,right); } //获取选中的值 } //从dest移动到target function lrShift(dest,target) { var childrens = dest.children(); var args = ""; //alert(dest.val()); var dests = dest.val() for(var x = 0; x < dests.length; x++) { var vaTemp = dests[x]; target.append("<option value='"+vaTemp+"'>"+vaTemp+"</option>");//追加 target.find("option[value='"+vaTemp+"']").attr("selected",true);//给追加获取焦点 for(var y = 0; y <childrens.length;y++ )//删除选中的元素 { if(childrens.get(y).value==vaTemp) $(childrens.get(y)).remove(); } } dest.val(""); } function ShiftValue(address) { var right = $("select[name='right']"); var left = $("select[name='left']"); if(right.val()!=null) shift(right,address); else if(left.val()!=null) shift(left,address); } function shift(obj,address){ //获取选中的值 var objData = obj.val(); var childrens = obj.children(); var strs = ""; for(var x = 0; x < objData.length; x++) { strs+="@"+objData[x]; } //获取要添加位置对象 var temp = null; if(address=="top"){ var number = findSelect(childrens,objData[0]); if((--number) < 0) return; temp = childrens.get(number); } else{ var number = findSelect(childrens,objData[objData.length-1]); if((++number) > childrens.length-1) return; temp = childrens.get(number); } //删除选中的值 var n = 0; var buffer = new Array(childrens.length-objData.length); for(var x = 0; x < childrens.length;x++) { var value = childrens.get(x).value; if(strs.indexOf(value)==-1) buffer[n++] = value; } //添加新排序的值 obj.empty(); if(address=="top") { for(var y = 0; y < buffer.length;y++) { if(buffer[y]==temp.value) { for(var x = 0; x < objData.length ; x++) { obj.append("<option>"+objData[x]+"</option>"); } } obj.append("<option>"+buffer[y]+"</option>"); } }else{ for(var y = 0; y < buffer.length;y++) { obj.append("<option>"+buffer[y]+"</option>"); if(buffer[y]==temp.value) { for(var x = 0; x < objData.length; x++) { obj.append("<option>"+objData[x]+"</option>"); } } } } //选中值 obj.val(objData); } function findSelect(selects,objValue) { var number = -1; for(var x = 0; x < selects.length; x++) { if(objValue==selects.get(x).value) number = x; } return number; }
页面调用
<div> <div> <b>未导出字段</b> </div> <div style="float:left;"> <select name="left" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;"> <option value="姓名">姓名</option> <option value="快件号">快件号</option> <option value="快递公司">快递公司</option> <option value="首重">首重</option> <option value="续重">续重</option> </select> </div> </div> <div style="float:left;"> <div style="margin:30px;margin-top:110px;"> <input type="button" value="<<" onclick="Shift('left')"/> </div> <div style="margin:30px;margin-top:30px;"> <input type="button" value=">>" onclick="Shift('right')"/> </div> </div> <div style="margin-top:-20px;"> <div style="margin-left:22%;"> <b>需导出字段</b> </div> <div style="float:left;"> <select name="right" multiple="multiple" onchange="selected(this)" style="height:350px;width:200px;"> <option value="首价">首价</option> <option value="续价">续价</option> <option value="大大">大大</option> <option value="小小">小小</option> </select> </div> </div> <div style="float:left;"> <div style="margin:30px;margin-top:110px;"> <input type="button" value="向上" onclick="ShiftValue('top')" /> </div> <div style="margin:30px;margin-top:30px;"> <input type="button" value="向下" onclick="ShiftValue('bottom')" /> </div> </div>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的基于jquery实现左右上下移动效果全部内容,希望文章能够帮你解决基于jquery实现左右上下移动效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。