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 相关文章推荐
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
jquery插件实现轮播图效果
Oct 19 jQuery
jquery实现图片放大镜效果
Dec 23 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
Protoss热键控制
2020/03/14 星际争霸
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
MySQL修改密码方法总结
2008/03/25 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
简单说明Python中的装饰器的用法
2015/04/24 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
python模块导入的方法
2019/10/24 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
信息工程学院毕业生推荐信
2013/11/05 职场文书
自强之星事迹材料
2014/05/12 职场文书
工地安全质量标语
2014/06/07 职场文书
2015年教师节感言
2015/08/03 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python