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实现选中行变色效果(实例讲解)
Jul 06 jQuery
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 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 array_flip() 删除数组重复元素
2009/01/14 PHP
PHP编码转换
2012/11/05 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
浅谈Python中的闭包
2015/07/08 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
python远程连接MySQL数据库
2019/04/19 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
个人承诺书怎么写
2014/05/24 职场文书
青奥会口号
2014/06/12 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
信仰观后感
2015/06/03 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js