• Vue动画


    Vue自带的动画效果通过六个类实现:

           v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

                v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

                v-enter-to:2.1.8 版及以上定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。

                v-leave:定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

                v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

                v-leave-to: 2.1.8 版及以上定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。
    其中 v-enter,v-enter-to,v-leave,v-leave-to 是四个时间点,而v-enter-active,v-leave-active是两个时间段,这个时间段里面就可以设置动画的过度时长以及过度效果
     
    实现动画的前提:
    •  必须用<transition></transition>标签将元素包裹起来

    使用第三方的动画库,这里使用 animate.css 这个库,有官网!

      使用animate.css:

      step1:引入animate.css

      step2:transition 标签中加上 enter-active-class,leave-active-class这两个属性,表示离开和进度动画分别应用哪个class!! enter-active-class="animate.css动画类名"  leave-active-class="class_name",

      step3:给要加动画的元素加上  class='animated'.

      完成这三个步骤就可以套用animate.css中动画样式了!

    也可以定义javascript钩子

      在 attribute 中声明 JavaScript 钩子

      

    <transition
      v-on:before-enter="beforeEnter"
      v-on:enter="enter"
      v-on:after-enter="afterEnter"
      v-on:enter-cancelled="enterCancelled"
    
      v-on:before-leave="beforeLeave"
      v-on:leave="leave"
      v-on:after-leave="afterLeave"
      v-on:leave-cancelled="leaveCancelled"
    >
      <!-- ... -->
    </transition>

    之后在vue实例 methods属性中定义上相应的钩子,这些钩子函数第一个参数都是,绑定动画的那个元素,也就是包裹在transition中那个元素。然后用js动态为这个dom元素添加动画样式就可以实现特定动画,比如半程动画【只定义进入的钩子】【添加购物车这个动画效果就是半程动画】。

    列表动画

      一组元素【例如ul里面的li】要实现动画效果,必须用 <transition-group ></transition-group>包裹。

    <!-- 如果 想要实现动画效果的元素是通过v-for循环生成的,不能使用<transition>包裹
                而是应该用 <transiton-group> 包裹  也是vue提供
                    而且v-for的每一循环项都必须带有 :key 唯一标识符属性 -->
    
            <!-- <ul> -->
            <!-- 页面刷新此时li会直接显现在页面,在 transition-group 标签加上 appear 属性,可以实现出场效果 -->
            <!-- transition-group 有个很重要属性 tag 可以设置transition-group 最终被渲染为什么类型的元素,默认是span 如果是想ul的话,就可以吧外面的ul标签去掉,加上tag='ul'   -->
            <transition-group appear tag="ul">
                <li v-for="item in list" :key="item.id">
                    {{ item.id }} --- {{ item.val }}
                </li>
            </transition-group>
            <!-- </ul> -->
    
        </div>
    
        <!-- 添加删除 li动画效果,
                    注意:删除li,如果后续还有,li,后面的li会往上顶,默认是是直接往前顶,没有过度。希望看到的效果是慢慢的往前顶,也如排队一样,前面的人走了,后面的人往前补位,也不会瞬移到前面的人位置上去,而是慢慢的,
                    删除li时也想实现这种效果,需要用到两个css样式 【固定写法
                     .v-move{
                         transition:xxxx
                     }以及
                     .v-leave-active{ //因为其实点击删除的元素虽然不在了,但是空间位置得到了保留,定义绝对定位就让这个空间位置消失,后面的元素就过度性的顶上来,这样移除的元素和顶上来的元素都同时有动画效果!!!
                         position:absolute
                     }
                    】
                -->
    
    
  • 相关阅读:
    springMVC 错误页面配置
    设计模式 11 —— 代理模式
    JAVA RMI 实例
    设计模式 10 —— 状态模式
    设计模式 9 —— 模板方法模式
    Java EE : 三、图解Session(会话)
    Java EE : 二、图解 Cookie(小甜饼)
    Java EE : 一、图解Http协议
    《JAVA与模式》之单例模式
    Java中如何克隆集合——ArrayList和HashSet深拷贝
  • 原文地址:https://www.cnblogs.com/Hijacku/p/14731947.html
Copyright © 2020-2023  润新知