8行JS代码实现Vue穿梭框
实现效果

完整 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">>> </button>
<button @click="toLeft"><<</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穿梭框的更多相关文章
- 不到30行JS代码实现的Excel表格
不到30行JS代码实现的Excel表格,jQuery并非不可替代 某国外程序员展示了一个由原生JS写成不依赖第三方库的,Excel表格应用,有以下特性: 由不足30行的原生JavaScript代码实现 ...
- 20行JS代码实现贪吃蛇
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 20行js代码制作网页刮刮乐
分享一段用canvas和JS制作刮刮乐的代码,JS部分去掉注释不到20行代码效果如下 盖伦.jpg 刮刮乐.gif HTML部分 <body>  &l ...
- 5行js代码搞定导航吸顶效果
一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...
- 18 行 JS 代码编一个倒时器
有时候在生活中,你需要一个JavaScript倒计时时钟,而不是一个末日装置设备.不管你是否有一次约会,销售.促销.或者游戏,你可以受益于使用原生JavaScript构建一个时钟,而不是拿到一个现成的 ...
- 360自动抢票还不够,几行js代码设置无人值守
360就是牛逼哄哄的...... 但是最近在使用360浏览器抢票的时候还是发现了一些体验不好的地方,比如搞着搞着就退出了登录,有时候能帮你自动登录进去,但是自动登录之后又不会帮你自动开始抢.然后验证码 ...
- JS代码实现的聊天框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue-toy: 200行代码模拟Vue实现
vue-toy 200行左右代码模拟vue实现,视图渲染部分使用React来代替Snabbdom,欢迎Star. 项目地址:https://github.com/bplok20010/vue-toy ...
- Vue实现拖拽穿梭框功能四种方式
一.使用原生js实现拖拽 点击打开视频讲解更加详细 <html lang="en"> <head> <meta charset="UTF-8 ...
- 65行 JavaScript 代码实现 Flappy Bird 游戏
飞扬的小鸟(Flappy Bird)无疑是2014年全世界最受关注的一款游戏.这款游戏是一位来自越南河内的独立游戏开发者阮哈东开发,形式简易但难度极高的休闲游戏,很容易让人上瘾. 这里给大家分享一篇这 ...
随机推荐
- Doug Lea大师的佳作CopyOnWriteArrayList,用不好能坑死你!
一.写在开头 我们在学习集合或者说容器的时候了解到,很多集合并非线程安全的,在并发场景下,为了保障数据的安全性,诞生了并发容器,广为人知的有ConcurrentHashMap.ConcurrentLi ...
- centos安装kvm博客
一 centos如何安装kvm https://blog.csdn.net/yulsh/article/details/91790804
- IDEA使用——生成超文本格式的(HTML)JavaDoc
概述 在大型项目中不免会有很多对外暴露的方法与接口,那我们就需要在类或者方法上面按照JavaDoc标准编写注释,就比如这样: 前面我们也提到过在Idea中可以将鼠标停留在方法名上,然后点击F2查看方法 ...
- Swoole 实践篇之结合 WebRTC 实现音视频实时通信方案
原文首发链接:Swoole 实践篇之结合 WebRTC 实现音视频实时通信方案 大家好,我是码农先森. 引言 这次实现音视频实时通信的方案是基于 WebRTC 技术的,它是一种点对点的通信技术,通过浏 ...
- Android 13 - Media框架(4)- MediaPlayerService
关注公众号免费阅读全文,进入音视频开发技术分享群! MediaPlayerService是android的多媒体框架的核心服务之一,该服务存储有android平台所支援的编解码器信息,管理所有通过Me ...
- WPF开发快速入门【0】前言与目录
前言 WPF是一个生不逢时的技术,刚推出的时候由于是XP时代,WPF技术有两个不方便的地方: 1.由于操作系统没有自带Framework,需要另外安装,比较麻烦: 2.程序第一次启动时,由于要加载Fr ...
- ZDOCK3.02安装及注意事项:基于Linux Ubuntu系统操作
cd zdock3.0.2_linux_x64代码mark_sur model2choose.pdb model2choose_m.pdbmark_sur 1bqi2.pdb 1bqi2_m.pdbz ...
- windows7 + Qt(MSVC2017) + VS2019安装配置
在windows下使用qt时调用QWebEngineView 库会报错,即使在pro文件QT += webenginewidgets也找不到, 而在MinGW和MSVC2015的路径下我并没有找到这个 ...
- flutter 打包web应用指定上下文
使用flutter build web命令打包的应用不包含上下文,只能部署在根目录.如何指定上下文,部署在子目录下呢? 有两种办法: 1.修改web/index.html文件 修改 <base ...
- 夜莺项目发布 v6.5.0 版本,暗黑菜单来了
大家好,夜莺项目发布 v6.5.0 版本,启用新 logo,菜单支持换肤,支持了暗黑版本的菜单,下一步会支持全站暗黑主题,敬请期待,下面是新 logo. 暗黑菜单 页面右上角点击用户名,在下拉框里会有 ...