虚位以待(AD)
虚位以待(AD)
首页 > 网页特效 > JavaScript > 基于jquery实现左右上下移动效果

基于jquery实现左右上下移动效果
类别:JavaScript   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了基于jquery实现左右上下移动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近再做报表时候,直接把全部字段都导出了,但这不太灵活。回忆老师讲过的项目做报表如下左右上下移功能灵活控制,所以就尝试下咯。

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移动和复制dom节点实用DOM操作案例
  • jQuery拖动div、移动div、弹出层实现原理及示例
  • 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
  • jQuery 移动端artEditor富文本编辑器
  • jQuery插件实现适用于移动端的地址选择器
  • jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
  • jquery实现移动端点击图片查看大图特效
  • jQuery移动web开发之页面跳转和加载外部页面的实现
  • jquery使用animate方法实现控制元素移动
  • jquery实现tr元素的上下移动示例代码
相关热词搜索: jquery左右上下移动效果 jquery移动效果 j