jQuery实现穿梭框效果


Posted in jQuery onJanuary 19, 2021

本文实例为大家分享了jQuery实现穿梭框效果的具体代码,供大家参考,具体内容如下

简介:今天给大家带来穿梭框的实现

布局的实现

<div id="box">
  <div id="boxleft">
   <ul id="left_ul">

   </ul>
  </div>
  <div id="boxbtn">
   <button id="btn_right">>>>></button>
   <button id="btn_left">
    <<<< </button>
  </div>
  <div id="boxright">
   <ul id="right_ul">

   </ul>
  </div>
</div>

布局的样式

<style>
  * {
   margin: 0 auto;
   padding: 0;
   list-style: none;
  }

  #box {
   width: 500px;
   display: flex;
   justify-content: space-around;
   margin-top: 20px;
  }

  #boxright {
   width: 200px;
   height: 500px;
   border: 1px solid darkcyan;
  }

  #boxleft {
   width: 200px;
   height: 500px;
   border: 1px solid darkcyan;
  }

  #boxbtn {
   margin: auto;
  }

  #boxbtn button {
   width: 50px;
   height: 200ox;
   margin-top: 10px;
   display: flex;
   background: deepskyblue;
   cursor: pointer;
   color: white;
  }

  ul li {
   height: 30px;
   line-height: 30px;
   margin-bottom: 2px;
   text-align: center;
   background: darkgray;
  }

  form {
   text-align: center;
  }

  .active {
   color: white;
   background: darkseagreen;
  }
</style>

代码实现

<script>
  let arr = [
   { "id": 1, "name": "zhang", "check": false },
   { "id": 2, "name": "liu", "check": false },
   { "id": 3, "name": "guan", "check": false },
   { "id": 4, "name": "zhao", "check": true },
   { "id": 5, "name": "ao", "check": true }
  ];

  $("#add").click(function () {
   var name = $("#name").val();
   arr.push({ "name": name });
   showUL(arr);
  })
  $(function () {
   showUL(arr);
  })
  function showUL(arr) {
   var leftstr = "";
   var rightstr = "";
   for(let i in arr) {
    let { id, name, check } = arr[i];
    if (check) {
     rightstr += `
      <li _id="${id}">${name}</li>
    `
    } else {
     leftstr += `
      <li _id="${id}">${name}</li>
    `
    }

   }
   $("#left_ul").html(leftstr);
   $("#right_ul").html(rightstr);
  }


  $("#left_ul").on("click", "li", function () {
   let index = arr.findIndex((v) => {
    return v.id == $(this).attr("_id");
   })

   if ($(this).hasClass('active')) {
    $(this).removeClass('active');
    arr[index].check = false;
   } else {
    $(this).addClass('active');
    arr[index].check = true;
   }
  });
  $("#right_ul").on("click", "li", function () {
   let index = arr.findIndex((v) => {
    return v.id == $(this).attr("_id");
   })

   if ($(this).hasClass('active')) {
    $(this).removeClass('active');
    arr[index].check = true;
   } else {
    $(this).addClass('active');
    arr[index].check = false;
   }
  });
  $("#btn_right").click(function () {
   if ($("#left_ul .active").length == 0) return false;

   showUL(arr);
  })
  $("#btn_left").click(function () {
   if ($("#right_ul .active").length == 0) return false;
  
   showUL(arr);
  })  
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
基于jquery实现二级联动效果
Mar 30 jQuery
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
jQuery插件jsonview展示json数据
May 26 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
jquery添加div实现消息聊天框
Feb 08 jQuery
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
html中两种获取标签内的值的方法
Jun 16 jQuery
jQuery冲突问题解决方法
Jan 19 #jQuery
jQuery实现购物车全功能
Jan 11 #jQuery
jQuery实现手风琴特效
Jan 11 #jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 #jQuery
使用jquery实现轮播图效果
Jan 02 #jQuery
jQuery实现全选按钮
Jan 01 #jQuery
jquery自定义组件实例详解
Dec 31 #jQuery
You might like
php中取得URL的根域名的代码
2011/03/23 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
解析php5配置使用pdo
2013/07/03 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
javascript实现画板功能
2020/04/12 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
python实现批量文件重命名
2019/10/31 Python
tensorboard显示空白的解决
2020/02/15 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
大三预备党员入党思想汇报
2014/01/08 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
森林防火标语
2014/06/23 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
党的作风建设心得体会
2014/10/22 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书