transition-group 包裹的过渡组件,当删除一个元素,同时在这个删除位置上写入多个元素的时候:
// 提取当前所有图标,进行释放 let onk = this.$util.deepClone(this.navLista) // 先提取,后释放 let dnum = this.findIdIcon(this.rightClickValue.id) let delFolder = onk[this.aindex].children.splice(dnum,1)[0] for(let i = delFolder.children.length-1;i >= 0; i--){ onk[this.aindex].children.splice(dnum,0,delFolder.children[i]) } this.$store.commit('navListModiy', onk)
元素没有进入动画,直接就是enter-to的末位css
.flip-li-enter-active { transition-duration: .3s;}.flip-li-leave-active { position: absolute;}.flip-li-move { transition-duration: 0.28s;}.flip-li-enter-to { opacity: 1; transform-origin: center; transform: scale(1); // transition-duration: .3s;}// 单个删除.flip-li-enter,.flip-li-leave-to { opacity: 0; transform-origin: center; transform: scale(.1); transition-duration: .3s;}
就是图标加入的时候没有从flip-li-enter这个css过渡到.flip-li-enter-to,所以没有动画,同时.flip-li-enter-to这个类名也没有消失,一直在dom上,vue2环境求解啦,谢谢啦
在看文档,appear 这种属性设置也没有用,不知到是加入的时候是不是存在了什么问题
从你的描述和代码中,我看到你在使用 Vue 的 <transition-group>
组件来处理元素的过渡动画。但是,你遇到的问题是,当你在删除一个元素并在其位置上添加多个新元素时,新元素没有从 .flip-li-enter
类过渡到 .flip-li-enter-to
类,因此没有动画效果。同时,.flip-li-enter-to
这个类名并没有从 DOM 上消失。
问题可能出在 transition-group
的 name
属性上。这个属性是用来指定过渡的类名的前缀的。如果没有设置 name
属性,那么 Vue 会使用组件的标签名作为前缀。然而,在你的例子中,你似乎没有设置 name
属性,所以 Vue 可能会使用默认的前缀,这可能与你预期的类名前缀不匹配。
你可以尝试在你的 <transition-group>
标签中添加 name
属性,并将其设置为 "flip",这样你的过渡类名就会有一个明确的前缀,例如:
<transition-group name="flip"> <div v-for="item in list" :key="item.id"> <!-- Your content here --> </div></transition-group>
然后,在你的 CSS 中,你可以使用这个前缀来定义你的过渡类,例如:
.flip-enter-active { transition: opacity .3s, transform .3s;}.flip-leave-active { position: absolute;}.flip-move { transition: transform .28s;}.flip-enter-to { opacity: 1; transform: scale(1);}
另外,你需要确保你的 v-for
指令中的 :key
是唯一的。这是 Vue 的一个最佳实践,可以帮助提高渲染的性能,并确保正确的过渡效果。在你的例子中,你可以使用每个项目的 id
作为 key
。
本文向大家介绍vue 组件中使用 transition 和 transition-group实现过渡动画,包括了vue 组件中使用 transition 和 transition-group实现过渡动画的使用技巧和注意事项,需要的朋友参考一下 前言 记一次vue 组件中使用 transition 和 transition-group 设置过渡动画,总结来说可分为分为 name 版, js 钩子操作
Vue 提供了transition的封装组件,在下列情形中,可以给任何元素和组件添加 entering/leaving 过渡 条件渲染 (使用v-if) 条件展示 (使用v-show) 动态组件 组件根节点 这里是一个典型的例子: <div id="demo"> <button v-on:click="show = !show"> Toggle </button> <tran
问题内容: 是否可以在不使用Javascript的情况下在页面加载时使用CSS3过渡动画? 问题答案: 您 可以 在页面加载时运行 CSS 动画,而无需使用任何JavaScript;您只需要使用 CSS3关键帧即可 。 让我们看一个例子… 这是仅使用 CSS3 的导航菜单滑入位置的演示: 分解… 这里的重要部分是关键帧动画,我们称之为… …这基本上是说:“开始时,标题将离开屏幕的左侧边缘的整个宽度
问题内容: 我找不到在新创建的dom元素上使用css过渡的方法。 假设我有一个空的html文档。 我也有这个CSS 和这个js 但是,正如您在http://jsfiddle.net/gwxkW/1/上看到的那样,单击该元素会立即显示。 如果我尝试在a中设置类,我 通常会 找到结果,但是对我来说,这似乎更像是javascript和CSS引擎之间的竞赛。有没有要听的特定事件?我尝试使用,但无法正常工作
问题内容: 我试图创建一种方法来检查数组中是否增加了元素。如果所有元素按升序排列,则应返回True。当我比较arr [i + 1]时,我得到了一个界外异常。关于如何使它起作用的任何想法。 问题答案: 我建议你这样写你的方法 我会帮你的 返回正确的结果(当您不应该返回true时) 考虑超越 避免不必要的循环
https://www.youtube.com/watch?v=G685JsiQM3E 这个视频里设置后载入页面就有放大效果.但我这边试了半没有这个效果.差在哪里?mac和windows?