实现效果

完整 demo 参考

<template>
<div class="contain">
<ul class="">
<li class="count">{{num(leftData,true)}}/{{leftData.length}}</li>
<li v-for="(city,index) in leftData" :key="index">
<input type="checkbox" v-model="city.check"> {{city.name}}
</li>
</ul>
<div class="btn">
<button @click="toRight">&gt;&gt; </button>
<button @click="toLeft">&lt;&lt;</button>
</div>
<ul>
<li class="count">{{num(rightData,true)}}/{{rightData.length}}</li>
<li v-for="(city,index) in rightData" :key="index">
<input type="checkbox" v-model="city.check"> {{city.name}}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
leftData: [
{ name: '北京', check: true },
{ name: '天津', check: false },
{ name: '上海', check: false },
{ name: '内蒙', check: false },
{ name: '重庆', check: false },
{ name: '台湾', check: false },
{ name: '香港', check: false },
{ name: '澳门', check: false }
],
rightData: []
}
},
methods: {
toRight() {
let selectData = this.filterData(this.leftData, true)
this.rightData = [...this.rightData, ...selectData]
this.leftData = this.filterData(this.leftData, false)
},
toLeft() {
let selectData = this.filterData(this.rightData, true)
this.leftData = [...this.leftData, ...selectData]
this.rightData = this.filterData(this.rightData, false)
},
filterData: (data, state) => data.filter(item => item.check == state)
},
computed: {
num() {
return (data, state) => this.filterData(data, state).length
}
}
} </script>
<style scoped>
.contain {
padding: 100px;
}
ul {
display: inline-block;
width: 200px;
border: 1px solid #ccc;
min-height: 400px;
vertical-align: top;
padding: 0;
margin: 0;
}
li {
line-height: 37px;
width: 200px;
border-bottom: 1px solid #ccc;
text-align: center;
list-style: none;
}
.count {
text-align: right;
color: brown;
padding-right: 20px;
background: #eee;
height: 45px;
line-height: 45px;
box-sizing: border-box;
}
.btn {
display: inline-block;
width: 100px;
text-align: center;
padding-top: 150px;
}
button {
width: 80px;
margin-bottom: 20px;
text-align: center;
}
</style>

8行JS代码实现Vue穿梭框的更多相关文章

  1. 不到30行JS代码实现的Excel表格

    不到30行JS代码实现的Excel表格,jQuery并非不可替代 某国外程序员展示了一个由原生JS写成不依赖第三方库的,Excel表格应用,有以下特性: 由不足30行的原生JavaScript代码实现 ...

  2. 20行JS代码实现贪吃蛇

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 20行js代码制作网页刮刮乐

    分享一段用canvas和JS制作刮刮乐的代码,JS部分去掉注释不到20行代码效果如下 盖伦.jpg 刮刮乐.gif HTML部分 <body> ![](img/gailun.jpg) &l ...

  4. 5行js代码搞定导航吸顶效果

    一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...

  5. 18 行 JS 代码编一个倒时器

    有时候在生活中,你需要一个JavaScript倒计时时钟,而不是一个末日装置设备.不管你是否有一次约会,销售.促销.或者游戏,你可以受益于使用原生JavaScript构建一个时钟,而不是拿到一个现成的 ...

  6. 360自动抢票还不够,几行js代码设置无人值守

    360就是牛逼哄哄的...... 但是最近在使用360浏览器抢票的时候还是发现了一些体验不好的地方,比如搞着搞着就退出了登录,有时候能帮你自动登录进去,但是自动登录之后又不会帮你自动开始抢.然后验证码 ...

  7. JS代码实现的聊天框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. vue-toy: 200行代码模拟Vue实现

    vue-toy 200行左右代码模拟vue实现,视图渲染部分使用React来代替Snabbdom,欢迎Star. 项目地址:https://github.com/bplok20010/vue-toy ...

  9. Vue实现拖拽穿梭框功能四种方式

    一.使用原生js实现拖拽 点击打开视频讲解更加详细 <html lang="en"> <head> <meta charset="UTF-8 ...

  10. 65行 JavaScript 代码实现 Flappy Bird 游戏

    飞扬的小鸟(Flappy Bird)无疑是2014年全世界最受关注的一款游戏.这款游戏是一位来自越南河内的独立游戏开发者阮哈东开发,形式简易但难度极高的休闲游戏,很容易让人上瘾. 这里给大家分享一篇这 ...

随机推荐

  1. Django性能优化:提升加载速度

    title: Django性能优化:提升加载速度 date: 2024/5/20 20:16:28 updated: 2024/5/20 20:16:28 categories: 后端开发 tags: ...

  2. 解决:ModuleNotFoundError: No module named ‘urllib3.packages.six.moves问题

    解决方案: 第一步:把selenium版本降到3.3.1 配合urllib3版本1.26.2使用,成功解决 &在python interpreter安装availablePackages se ...

  3. Android 13 - Media框架(17)- OpenMax(五)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 这一节最后来了解 OMX_Video.h 以及 OMX_Audio.h 中的内容 1.OMX_Video.h 这里只了解该文件中的 OMX_VIDE ...

  4. 10W QPS高并发,如何防止重复下单?

    小北说在前面 10wqps高并发,如何防止重复提交/支付订单? 10wqps高并发,如何防止重复下单? 10wqps高并发,如何防止重复支付? 10wqps高并发,如何解决重复操作问题? 最近有小伙伴 ...

  5. iOS 处理HLS视频流

    一.HLS介绍 HLS是苹果主导的音视频传输协议,其主要的格式是一个索引文件(M3U8)+ ts分片的视频文件. HLS的优势是iOS系统天然支持,通过Http 80传输,规避了常规的防火墙问题. 视 ...

  6. zoxide更新后 (cd)异常

    关于zoxide github地址:https://github.com/ajeetdsouza/zoxide 简单来说 zoxide是一个cd的强化版.它会记录你曾经cd过的目录,在你使用cd的时候 ...

  7. macbookrpro使用体验

    前言 之前用的电脑是拯救者y7000 2020,用了四五年,年前就有换电脑的打算.计划就是买一个苹果电脑,在查看了挺多电脑,多方面对比后,最终还是买了Macbook pro. 我买的笔记本的配置如下: ...

  8. 「C++」简单模拟

    这是一个公式: \[F_n=\dfrac{\left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n}{\sqrt{ ...

  9. Mac 上切换 node 版本总结

    Mac 上切换 node 版本总结 背景 在做项目的时候,往往会遇到老项目没有升级的问题,node环境版本比较低,自己电脑安装或者新项目安装了最新版本的 node 环境,那么既要支持老版本的使用也要支 ...

  10. 端口占用,无法通过netstat找到进程,占用的端口又不能修改,该怎么办?

    最近遇到一个奇葩的问题,项目跑的好好的,没有安装其它特殊软件,突然服务器启动报错,日志如下,显然是服务器的8080端口占用了. Caused by: java.net.BindException: A ...