• 学习css过渡动画-transition


    文章目录

    • 前言
    • transition属性语法
    • 宽度改变效果
    • 透明度改变效果
    • 位置改变效果
      • `如有启发,可点赞收藏哟~`


    前言

    通常,当一个元素的样式属性值发生变化时,会立即看到页面发生变化。
    css属性transition能让页面元素不是立即的、而是慢慢的从一种状态变成另外一种状态,从而表现出一种动画过程。

    transition属性语法

    属性介绍
    transition-property元素的哪一个属性将用过渡表现。例如, opacity,color。默认值是all。
    transition-duration元素过渡过程持续时间。例如,1s。默认值是0s。
    transition-timing-function元素过渡时的速率函数。例如, linear、 ease-in、steps动画分段函数或自定义的 cubic-bezier 函数)。默认值是ease,中间快,两头慢。
    transition-delay元素过渡延迟的时间。例如,1s。默认值是0s
    transition没有定义上述的,可以按照上述的属性依次填写,空格格式。且可以以逗号隔开操作多种不同元素属性的配置

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    属性和方法太多,可按实际效果调试


    宽度改变效果

    <template>
      <div class="content" :class="{'content-fade': fade}">div>
    template>
    
    <script>
    import { defineComponent, ref } from "vue";
    
    export default defineComponent({
      name: "App",
      components: {},
      setup() {
        const fade = ref(true);
        const change = () => (fade.value = !fade.value);
        setInterval(() => {
          change()
        }, 4000);
        return {
          fade,
        };
      },
    });
    script>
    <style scoped>
    .content {
      width: 200px;
      height: 120px;
      background-color: aqua;
      transition: width 3s;
      /* transition: width 3s steps(+3); */
    }
    .content-fade {
      width: 50px;
    };
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    透明度改变效果

    <template>
      <div class="content" :class="{'content-fade': fade}">div>
    template>
    
    <script>
    import { defineComponent, ref } from "vue";
    
    export default defineComponent({
      name: "App",
      components: {},
      setup() {
        const fade = ref(true);
        const change = () => (fade.value = !fade.value);
        change()
        setInterval(() => {
          change()
        }, 3000);
        return {
          fade,
        };
      },
    });
    script>
    <style scoped>
    .content {
      width: 200px;
      height: 120px;
      background-color: aqua;
      transition: opacity 3s ;
    }
    .content-fade {
      opacity: 0;
    };
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    位置改变效果

    <template>
      <div class="page">
        <div
          class="circle"
          :class="[fade ? 'circle-fade-in' : 'circle-fade-out']"
        >div>
      div>
    template>
    
    <script>
    import { defineComponent, ref } from "vue";
    
    export default defineComponent({
      name: "App",
      components: {},
      setup() {
        const fade = ref(true);
        const change = () => (fade.value = !fade.value);
        setInterval(() => {
          change();
        }, 5000);
        return {
          fade,
        };
      },
    });
    script>
    <style scoped>
    .page {
      width: 100vw;
      height: 100vh;
      position: relative;
    }
    .circle {
      position: absolute;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      background-color: aqua;
      transition: all 5s linear;
    }
    .circle-fade-in {
      top: 0px;
      left: 0px;
    }
    .circle-fade-out {
      top: calc(100vh - 120px);
      left: calc(100vw - 120px);
    }
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    如有启发,可点赞收藏哟~

  • 相关阅读:
    odoo 按钮打印pdf报表
    ssm毕设项目星河书城9p6tr(java+VUE+Mybatis+Maven+Mysql+sprnig)
    瑞吉外卖(26)- 添加购物车功能开发
    Python爬虫|基础知识点详细汇总(requests、urllib、re、bs4、xpath、多线程、协程、数据保存、selenium)
    GeographicLib 的VS2013项目生成以及Geoid Height 提取
    java语法基础-java面向对象编程-包的定义及使用
    leetcode 128. 最长连续序列
    什么是WordPress
    M3 MacBook Pro 能提效?程序员、产品经理自证后,CTO:你赢了,新电脑在路上了...
    vue3全屏功能实现
  • 原文地址:https://blog.csdn.net/weiCong_Ling/article/details/134465057