javascript - vue的 过渡动画 可以不通过 show if 触发吗? 怎么做呢??

 mobiledu2502856013 发布于 2022-11-27 08:08

vue 的过度动画通过添加 transition 特性,在元素插入删除或者隐藏显示时会被触发, 但是如果我只是想在某项操作后,触发一个元素的 vue 动画该如何实现呢??

 

click

比如上面的代码,slide-edit-box 的动画会在 editShow 改变时触发,但是我现在想在点击 btn 的时候触发动画效果

3 个回答
  • <section class="modal-wrap" v-if="showWrap" v-bind:class="show?'active':''">
        <p class="yo-modal ani" @click.self="close"></p>
        <slot></slot>
    </section>
    

    类似父元素和子元素进行动画,父元素必须等待子元素进行动画结束后才可以消失,使用Vue2.0因为props不再支持双向绑定,如果再使用transition会很难操作,最后直接通过操作class结合watch实现

    2022-11-27 08:45 回答
  • 使用Class 与 Style 绑定

    其实vue的transition配合animate.css效果更佳

    可参考下面的例子,没有使用transition。

    https://jsfiddle.net/xiaoluob...

    2022-11-27 08:45 回答
  • 可以按普通的css3动画思路来实现。

    将transition属性和初始css动画属性定义在一个常驻class上,比如.slide-edit-box
    然后把动画触发之后的css属性定义在一个新的临时class上,比如.slide-edit-box-anime

    然后给btn绑定一个给动画dom添加class的方法就可以了。

    data () {
      return {
        class: ''
      }
    },
    methods: {
      anime () {
        this.class = 'slide-edit-box-anime'
      }
    }
    2022-11-27 08:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有