返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue 实现穿梭框功能的详细代码
  • 467
分享到

Vue 实现穿梭框功能的详细代码

2024-04-02 19:04:59 467人浏览 独家记忆
摘要

Vue - 实现穿梭框功能,效果图如下所示: CSS .transfer{ display: flex; justify-content: center;

Vue - 实现穿梭框功能,效果图如下所示:

CSS


.transfer{
    display: flex;
    justify-content: center;
    align-items: center;
}
.transfer>.list {
    width: 200px;
    height: 300px;
    border: 1px solid #000;
    list-style: none;
}
.content{
    font-size: 30px;
    margin: 0 20px;
}
.list>li{
    padding: 5px;
    box-sizing: border-box;
}

html


<div class="transfer" >
    <!-- 左框 -->
    <ul class="list left">
        <template v-for="(item, index) in info">
            <li :key="index">
                <input type="checkbox" :id=`checkbox${item.id}` name="checkbox" :checked="item.select" @click="item.select=!item.select"  />
                <label :for=`checkbox${item.id}` >{{ item.name }} </label>
            </li>
        </template>
    </ul>

    <!-- 添加/删除 -->
    <div class="content">
        <p class="push" @click='push' >>>></p>
        <p class="del"  @click='del' ><<<</p>
    </div>

    <!-- 右框 -->
    <ul class="list right">
        <template v-for="(item, index) in new_info">
            <li :key="index" >
                <input type="checkbox" :id=`newcheckbox${item.id}` name="newcheckbox" :checked="item.select" @click="item.select=!item.select"  />
                <label :for=`newcheckbox${item.id}`>{{ item.name }} </label>
            </li>
        </template>
    </ul>
</div>

js


data(){
    return{
        // 原数据,左框数据
        info:[
            {id:'1',name:'小明'},
            {id:'2',name:'小红'},
            {id:'3',name:'小鸡'},
            {id:'4',name:'哈哈哈哈'},
            {id:'5',name:'啊啊啊啊'},
            {id:'6',name:'DDDd'},
            {id:'7',name:'qwert'},
        ],
        new_info: [],// 新数据,右框数据
    }
},
methods:{// 添加数据
    push(){
        let that = this;
        let info = JSON.parse(JSON.stringify(that.info)); // 拷贝原数据, 深拷贝
        info.forEach((item, index )=>{
            // 执行 select 为true 的数据
            if (item.select){
                that.new_info = that.new_info.concat(item).sort((a,b)=>{ return a.id - b.id }); // 添加到新数据框, 排序
                delete info[index];    // 删除数据
                item.select = false; 
            }
        })
        info = info.filter(function (val) { return val }); // 过滤 undefined 
        that.info = info; // 更新原数据\
    },
    // 移除数据
    del(){
        let that = this;
        let info = JSON.parse(JSON.stringify(that.new_info)); // 拷贝原数据, 深拷贝
        info.forEach((item, index )=>{
            // 执行 select 为true 的数据
            if (item.select){
                that.info = that.info.concat(item).sort((a,b)=>{ return a.id - b.id }); // 添加到新数据框, 排序
                delete info[index];    // 删除数据
                item.select = false;
            }
        })
        info = info.filter(function (val) { return val }); // 过滤 undefined 
        that.new_info = info; // 更新原数据
    },
},

mounted(){
    let that = this;
    // 给原始数据添加一个 select 字段,判断是否选中
    that.info.map((val,key)=>{ that.$set(val,'select',false) });
}

********************************************************************************************************************************************************

这里使用splice删除数据会有问题 this.info.splice(index,1);当选中多个元素时,会发现只删除掉其中一些元素,而还有一些选中的元素还存在因为当删除掉了一个元素后,数组索引发生的变化,造成了程序的异常。所以就使用了 delete清除数据,然后再 filter过滤 undefined大概思路: 给数据添加一个 select 字段,用多选框的 checked 绑定, click 的时候该字段实现取反转移数据时,只执行 select 为 true 的数据,添加到新数据框中,再把原先的删除

到此这篇关于Vue 实现穿梭框功能的详细代码的文章就介绍到这了,更多相关Vue 穿梭框内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue 实现穿梭框功能的详细代码

本文链接: https://lsjlt.com/news/155212.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue 实现穿梭框功能的详细代码
    Vue - 实现穿梭框功能,效果图如下所示: css .transfer{ display: flex; justify-content: center; ...
    99+
    2024-04-02
  • 怎么利用Vue实现拖拽穿梭框功能
    今天小编给大家分享一下怎么利用Vue实现拖拽穿梭框功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、使用原生js实现拖拽...
    99+
    2023-07-04
  • Vue实现拖拽穿梭框功能四种方式实例详解
    目录一、使用原生js实现拖拽二、VUe使用js实现拖拽穿梭框三、Vue 拖拽组件 vuedraggable四、Awe-dnd指令封装一、使用原生js实现拖拽 <html lan...
    99+
    2024-04-02
  • 基于Vue实现树形穿梭框的示例代码
    Vue 项目里面需要一个树形的穿梭框,但是 elementUI 和 ant-d 组件库的穿梭框组件效果都不是很好,因为源列表和目标列表都是需要树形结构的,所以说这个就很难搞,但是也不...
    99+
    2024-04-02
  • element 穿梭框性能优化的实现
    目录背景解决思路新问题进阶背景 穿梭框处理大数据量时,由于渲染的 DOM 节点过多,造成页面卡顿的问题。 在尽量不改变组件原有逻辑的前提下,进行优化。 解决思路 懒加载 - I...
    99+
    2024-04-02
  • 基于Vue怎么实现树形穿梭框
    这篇文章主要介绍了基于Vue怎么实现树形穿梭框的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Vue怎么实现树形穿梭框文章都会有所收获,下面我们一起来看看吧。树形穿梭框插件el-tree-transfer这个...
    99+
    2023-06-30
  • Ant Design Vue中如何实现省市穿梭框
    本篇内容主要讲解“Ant Design Vue中如何实现省市穿梭框”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ant Design Vue中如何实现省市穿梭框”吧!树形穿梭框官方树穿梭框如下,...
    99+
    2023-06-22
  • CSS3 如何实现穿梭星空动画功能
    本篇内容主要讲解“CSS3 如何实现穿梭星空动画功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3 如何实现穿梭星空动画功能”吧!实现效果:html<canvas id=...
    99+
    2023-06-08
  • Vue实现输入框@功能的示例代码
    目录前言成员列表创建使用输入框获取光标的坐标保存光标插入文本运行结果总结前言 前几篇文章中分别介绍了如何实现聊天输入框的双向绑定、回车键发送、粘贴文本图片等功能,本着完善输入框的目的...
    99+
    2024-04-02
  • C++实现关机功能详细代码
    目录前言:功能实现:总结前言: 可以写出来后发给你的室友或者好朋友,可以增进你们之间的友谊 功能实现: 输入关机命令语句,shutdown -s -t 60,电脑就会在60秒之后关机...
    99+
    2024-04-02
  • JS原生双栏穿梭选择框的实现示例
    目录何时使用结构分支代码何时使用 用直观的方式在两栏中移动元素,完成选择行为。 选择一个或以上的选项后,点击对应的方向键,可以把选中的选项移动到另一栏。 其中,左边一栏为 sourc...
    99+
    2024-04-02
  • JavaScript实现星座查询功能 附详细代码
    目录一、题目二、代码 三、结果四、总结 一、题目 在文本框中输入一个生日值,点击按钮,可以显示此生日的对应星座。定义一个函数,该函数用来接收一个生日值(月日组成的...
    99+
    2024-04-02
  • Vue中实现3D标签云的详细代码
    预览: 代码: 页面部分: <template> <div class="tagcloud-all" ref="tagcloudall"&...
    99+
    2024-04-02
  • Vue图片裁剪功能实现代码
    目录一、效果展示:1、表单的图片上传项:2、裁剪框页面二、代码部分1、首先安装Vue-Cropper,基于此组件的基础上开发的裁剪页面2、裁剪弹窗的组件编写:3、【图片上传表单项】组...
    99+
    2024-04-02
  • Android使用GridView实现日历功能示例(详细代码)
    Android使用GridView实现日历功能示例,代码有点多,发个图先: 如果懒得往下看的,可以直接下载源码吧,最近一直有人要,由于时间太久了,懒得找出来整理,今天又看到...
    99+
    2022-06-06
    示例 gridview Android
  • Vue实现悬浮框自由移动+录音功能的示例代码
    目录效果如下主要功能实现1.封装第一个漂浮组件FloatBall.vue2.封装第二个组件录音组件Audio.vue3.recorder.js效果如下 主要功能 1.一个漂浮的球...
    99+
    2024-04-02
  • Vue实现菜单功能的代码怎么写
    本篇内容主要讲解“Vue实现菜单功能的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue实现菜单功能的代码怎么写”吧!菜单功能实现菜单接口封装菜单管理是一个对菜单树结构的增删改查操作...
    99+
    2023-06-29
  • Java 实现网络爬虫框架详细代码
    目录Java 实现网络爬虫框架一、每个类的功能介绍二、每个类的源代码Java 实现网络爬虫框架 最近在做一个搜索相关的项目,需要爬取网络上的一些链接存储到索引库中,虽然有很多开源的强...
    99+
    2024-04-02
  • vue中实现拖拽排序功能的详细教程
    目录原生拖拽 API 实现拖拽设置元素 dragable拖放事件拖拽排序拖拽API + 防抖实现vue awe-dnd 拖拽组件安装 awe-dnd 组件库在 main.js 中将 ...
    99+
    2024-04-02
  • vue + element ui实现播放器功能的实例代码
    没有效果图的展示都是空口无凭 1.基于audio并结合elementUI 的进度条实现 2.实现了播放器基本的功能,播放/暂停、快进、静音、调节声音大小、下载等功能 html代码,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作