使用vue前端框架尝试做一个购物车页面,勾选进购物车的商品列表可删除,代码如下:

**<template>部分**
<div class="goods-list-wrap"><transition-group name="list-complete"><div class="J-shoping-list" v-for="(item, index) in goodsList" :key="index"><img :src="item.img" /><div class="J-shoping-list-a"><p>{{item.price}}</p><p><span class='goods-list-num'>{{item.num}}</span><span class='goods-list-price'>$ {{item.num * parseInt(item.price) || 0}}</span></p></div><i class="el-icon-close goods-del-icon" @click="removeItem(item,index)"></i></div></transition-group>
</div>**<script>部分**
data:function(){return {goodsList:[{name: "apple", price: "5.00", num: "2", img: "/static/test/1.jpg"},{name: "pear", price: "3.00", num: "1", img: "/static/test/2.jpg"},{name: "grape", price: "7.90", num: "5", img: "/static/test/3.jpg"},{name: "lemon", price: "2.50", num: "3", img: "/static/test/4.jpg"},{name: "banan", price: "1.90", num: "7", img: "/static/test/5.jpg"},{name: "cherry", price: "8.89", num: "2", img: "/static/test/6.jpeg"},]}
},
methods:{removeItem(ele,idx) {this.goodsList.splice(idx, 1);},
}**<style>部分(节选)**
.J-shoping-list {transition: all 1s;
}
.list-complete-enter, .list-complete-leave-to{opacity: 0;transform: translateY(30px);
}
.list-complete-leave-active {position: absolute;
}

代码部分完成之后,测试过程中出现了如下问题:


动画效果是有了,但是不管删除哪一项,动画都作用在最后一个列表项。
通过查阅资料,发现问题出在循环生成列表项时绑定的key值上,因为key是vue框架用来标识节点唯一性的,当使用index作为key值时,执行删除操作,删除之后的新数组index从1-6变为了1-5,此时,虚拟DOM认为列表项的最后一项需要应用动画效果。所以,改为选用其他属性作为key值,如name(本例中的name属性值无重复)。
<div class="J-shoping-list" v-for="(item, index) in goodsList" :key="index">
改为

<div class="J-shoping-list" v-for="(item, index) in goodsList" :key="item.name">

修改之后的动画效果为:

成功~撒花(_)∠※

Vue 删除列表项的淡出动画相关推荐

  1. Vue默认插槽、具名插槽、作用域插槽及使用作用域插槽删除列表项

    Vue默认插槽.具名插槽.作用域插槽及使用作用域插槽删除列表项 1. 默认插槽 父组件标签内写的所有内容都放在插槽中 父组件: <h1>我是父组件</h1><base-b ...

  2. 微信小程序实现列表项左滑删除效果

    效果 图片 WXML <view class="container"><!-- 收货地址 --><view class="address&q ...

  3. 【STM32】FreeRTOS列表和列表项详解

    00. 目录 文章目录 00. 目录 01. 概述 02. 列表 03. 列表项 04. 列表相关宏 05. 列表相关函数 5.1 初始化列表 5.2 初始化列表项 5.3 列表项插入函数 5.4 列 ...

  4. FreeRTOS的列表和列表项

    列表和列表项 列表 列表是FreeRTOS中的一个数据结构,概念上和链表有点类型,是一个循环双向链表,列表被用来跟踪FreeRTOS中的任务.列表的类型是List_T,具体定义如下: typedef ...

  5. Android仿ios二级菜单侧滑,仿IOS的列表项滑动菜单——ListItemMenu

    一个简单的仿IOS的列表项滑动菜单(也不知道怎么描述比较好). 顺手做出来的小东西,就分享给大家了. 仿iOS列表项滑动菜单: 1.滑动出现菜单,越界阻尼效果: 2.删除列表项效果. GitHub地址 ...

  6. list vue 删除后页面渲染_Vue项目中v-for数组删除第n项元素产生渲染错误问题及解决方法...

    项目背景 最近使用Vue(版本2.9)开发一个项目时,要生成表单列表,所以使用了v-for来做循环,循环里的元素(item)是一个子组件.同时每个元素都有删除按钮,点击后删除当前元素. 初始代码如下: ...

  7. 如何从 Python 列表中删除重复项

    def my_function(x):return list(dict.fromkeys(x))mylist = my_function(["a", "b", ...

  8. 如何在保留订单的同时从列表中删除重复项?

    是否有内置的程序在保留顺序的同时从Python列表中删除重复项? 我知道我可以使用集合来删除重复项,但这会破坏原始顺序. 我也知道我可以这样滚动自己: def uniq(input):output = ...

  9. 从Dart列表中删除重复项的2种方法

    本文向您展示了从 Flutter 中的列表中删除重复项的 2 种方法.第一个适用于原始数据类型列表.第二个稍微复杂一些,但适用于map****列表或对象列表. 转换为 Set 然后反转为 List 这 ...

最新文章

  1. cuda-convnet2与caffe对比
  2. linux任务调度语法,linux crond任务调度-Go语言中文社区
  3. 在 Windows上写 Python 代码的最佳组合!
  4. Oracle 语言分类 数据类型 数据类型转换 常用函数 集合操作 子查询
  5. k8s里面的项目怎么暴露端口让用户访问_从零开始入门 K8s | 可观测性:监控与日志...
  6. mt6765和骁龙665哪个好_骁龙665+5000毫安大电池不到千元,手机厂商还要怎么玩?...
  7. android资源编译失败,在android studio中打开一个新项目时,Android资源编译失败
  8. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
  9. SPOJ PGCD (mobius反演 + 分块)
  10. 力扣题目——429. N 叉树的层序遍历
  11. lae界面开发工具入门之介绍三--布局篇
  12. SpringMVC快速上手教程及SSM整合案例
  13. ORCAD中occurences 和 instances的区别
  14. 4和2大于号小于号箭头那边_小于号是哪个方向
  15. Qualtrics初体验——10年不融资,价值80亿美金
  16. ∑-Δ 型ADC原理
  17. 【BDTC 2017】专访中兴通讯杜学军:uSmartInsight,大数据与人工智能融合平台
  18. 微信小程序实现登录页面
  19. C语言之__attribute__((visibility(“default“)))等gcc flag讲解(六十二)
  20. python基础-数据类型转换

热门文章

  1. 东师计算机教育综合,东师网络教育本科计算机应用
  2. 揭秘TPM安全芯片技术及加密应用
  3. java1.7.0 for linux_linux操作系统-安装jdk1.7
  4. 前端时间选择器实现(包括两种形式,1、只有年月日 2、包含年月日:时分秒)
  5. RPG角色生成器(C++)
  6. 信号完整性分析与电源完整性分析学习笔记(一)
  7. 你旁边的电闸有辐射或者其它危害吗?
  8. 一个游戏账号竟卖到7.5万元!
  9. 美国办公室里怎样着装
  10. 闲人闲谈PS之二十八——PS模块底层架构设计初探