实现效果

完整 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. Doug Lea大师的佳作CopyOnWriteArrayList,用不好能坑死你!

    一.写在开头 我们在学习集合或者说容器的时候了解到,很多集合并非线程安全的,在并发场景下,为了保障数据的安全性,诞生了并发容器,广为人知的有ConcurrentHashMap.ConcurrentLi ...

  2. centos安装kvm博客

    一 centos如何安装kvm https://blog.csdn.net/yulsh/article/details/91790804

  3. IDEA使用——生成超文本格式的(HTML)JavaDoc

    概述 在大型项目中不免会有很多对外暴露的方法与接口,那我们就需要在类或者方法上面按照JavaDoc标准编写注释,就比如这样: 前面我们也提到过在Idea中可以将鼠标停留在方法名上,然后点击F2查看方法 ...

  4. Swoole 实践篇之结合 WebRTC 实现音视频实时通信方案

    原文首发链接:Swoole 实践篇之结合 WebRTC 实现音视频实时通信方案 大家好,我是码农先森. 引言 这次实现音视频实时通信的方案是基于 WebRTC 技术的,它是一种点对点的通信技术,通过浏 ...

  5. Android 13 - Media框架(4)- MediaPlayerService

    关注公众号免费阅读全文,进入音视频开发技术分享群! MediaPlayerService是android的多媒体框架的核心服务之一,该服务存储有android平台所支援的编解码器信息,管理所有通过Me ...

  6. WPF开发快速入门【0】前言与目录

    前言 WPF是一个生不逢时的技术,刚推出的时候由于是XP时代,WPF技术有两个不方便的地方: 1.由于操作系统没有自带Framework,需要另外安装,比较麻烦: 2.程序第一次启动时,由于要加载Fr ...

  7. ZDOCK3.02安装及注意事项:基于Linux Ubuntu系统操作

    cd zdock3.0.2_linux_x64代码mark_sur model2choose.pdb model2choose_m.pdbmark_sur 1bqi2.pdb 1bqi2_m.pdbz ...

  8. windows7 + Qt(MSVC2017) + VS2019安装配置

    在windows下使用qt时调用QWebEngineView 库会报错,即使在pro文件QT += webenginewidgets也找不到, 而在MinGW和MSVC2015的路径下我并没有找到这个 ...

  9. flutter 打包web应用指定上下文

    使用flutter build web命令打包的应用不包含上下文,只能部署在根目录.如何指定上下文,部署在子目录下呢? 有两种办法: 1.修改web/index.html文件 修改 <base ...

  10. 夜莺项目发布 v6.5.0 版本,暗黑菜单来了

    大家好,夜莺项目发布 v6.5.0 版本,启用新 logo,菜单支持换肤,支持了暗黑版本的菜单,下一步会支持全站暗黑主题,敬请期待,下面是新 logo. 暗黑菜单 页面右上角点击用户名,在下拉框里会有 ...