CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式

这篇具有很好参考价值的文章主要介绍了CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSS动画

一、触发式动画Transition

transition过渡动画,一般配合伪类使用

属性值:

  1. transition-duration:

    指定过渡效果的持续时间,以秒或毫秒为单位。

  2. transition-timing-function:

    指定过渡效果的时间函数,即控制过渡速度的函数。常用的值有 ease、linear、ease-in、ease-out、ease-in-out 等。

  3. transition-delay:指定过渡效果延迟的时间,以秒或毫秒为单位。

  4. transition-property:指定要过渡的 CSS 属性。可以指定一个或多个属性

举个例子,

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  transition-property: background-color;
  transition-duration: 1s;
  transition-timing-function: ease-in-out;
    /* 复合属性*/
    transition: 属性名,过渡时间,时间函数,延迟时间;
}

.box:hover {
  background-color: blue;
}

transition 属性只能应用于一些可以被数值化的 CSS 属性,例如 width、height、background-color 等。像 display、visibility 等不能被过渡的属性就无法使用 transition 属性来实现动画效果。

此外,transition 属性也可以与其他 CSS 动画属性(如 animation)组合使用,以实现更加复杂的动画效果。

二、主动式动画Animation

CSS的 Animation 属性可以实现比 transition 更加复杂、多样化的动画效果。
animation 属性需要指定一个动画名称,以及一系列动画选项,包括动画的持续时间、时间函数、延迟时间、重复次数、播放方向等。

animation :动画名(name) ,持续时间(duration),延迟时间(delay),动画速率(step(5),运动次数(默认一次,可选n/infinte)**

具体来说,animation 属性有以下几个值:

  1. animation-name:指定动画的名称,通常需要与 @keyframes 规则配合使用。@keyframes 规则用于定义动画的关键帧,即动画从开始到结束的过程中的关键状态。可以通过指定关键帧的百分比或关键字来定义不同的状态。例如:
/*定义函数*/
@keyframes move {
  from {
      left: 0;
    }
  to {
      left: 100px;
    }
}

.box {
  animation-name: move;
  animation-duration: 2s;
  animation-timing-function: linear;
  /* 复合属性*/
    animation : move 2s linear;
}

在这个例子中,定义了一个名为 move 的动画,它包含两个关键帧,分别在 0% 和 100% 处,分别定义了 .box 元素的 left 属性的值。当应用了这个动画后,.box 元素会从 left=0 的位置平滑过渡到 left=100px 的位置。

  1. animation-duration:指定动画的持续时间,以秒或毫秒为单位。

  2. animation-timing-function:指定动画的时间函数,即控制动画速度的函数。

    可取值:ease、linear、ease-in、ease-out、ease-in-out 等。

  3. animation-delay:指定动画延迟的时间,以秒或毫秒为单位。

  4. animation-iteration-count:指定动画的重复次数。

    可取值:数值(如 2、3)或关键字(如 infinite,表示无限重复)。

  5. animation-direction:指定动画的播放方向。

    可取值: normal(正常播放)、reverse(反向播放)、alternate(正反交替播放)、alternate-reverse(反正交替播放)。

  6. animation-fill-mode:指定动画结束后元素的状态

    可取值:

    • none: 这是默认值,表示动画在播放之前或之后,不会影响元素的样式。
    • forwards: 表示动画在结束后,元素会保留最后一个关键帧的样式。
    • backwards: 表示动画在开始前,元素会应用第一个关键帧的样式。
    • both: 表示动画在开始前和结束后,都会应用相应的关键帧的样式。
  7. animation-play-state:控制动画的播放状态等。

    可取值:paused 停止 ,running 运动起来

需要注意的是,动画效果的复杂性通常会影响性能。因此,在使用 animation 属性时,应尽量避免使用过于复杂的动画效果,以免影响页面的性能。

三、Transfrom 动画

Transform 是 CSS3 中的一个属性,可以对元素进行变形,包括旋转、缩放、扭曲等效果。Transform 可以结合 CSS 的过渡和动画属性使用,实现各种有趣的动画效果。

Transform 属性的语法如下:

transform: none|transform-functions;

其中,transform-functions 是一个或多个变形函数,可以使用以下变形函数:

  • translate():平移元素,

    接受 X 和 Y 方向的偏移量

    百分比

    像素

  • rotate():旋转元素,接受旋转角度,可以使用度数或者弧度deg作为单位。

  • scale():缩放元素,接受 X 和 Y 方向的缩放比例,可以使用小数或者百分比作为单位。

  • skew():扭曲元素,接受 X 和 Y 方向的扭曲角度,可以使用度数或者弧度作为单位。

  • matrix():可以通过一个 6 个值的矩阵来实现所有变换效果。

除了变形函数,还有一些常用的属性:

  • transform-origin:指定元素变形的中心点,可以设置为一个固定的坐标点,也可以设置为相对位置的百分比。
  • transform-style:指定元素的子元素是否继承父元素的变形效果,可以设置为 flat 或者 preserve-3d
  • perspective:设置元素的透视距离,只有在使用 preserve-3d 的情况下才会起作用。

例如,以下代码实现了一个旋转和缩放的动画效果:

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  transition: transform 1s ease;
}

.box:hover {
  transform: rotate(45deg) scale(1.2);
}

CSS 3D 动画属性是一组可以使用 CSS 实现 3D 动画效果的属性,这些属性包括:

  1. transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
    • flat:默认值,子元素不进行 3D 转换。
    • preserve-3d:子元素进行 3D 转换。
  2. perspective:指定 3D 转换元素的观察者视角,用于模拟真实 3D 空间。值越小,视角越近,立体感越强。可取值:
    • length:表示长度值,必须为正数,常见单位有 px、em、rem、% 等。
  3. perspective-origin:指定 3D 转换元素的观察者视角的位置。可取值:
    • x-axis:left、center、right。
    • y-axis:top、center、bottom。
    • z-axis:length。
  4. transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
    • flat:默认值,子元素不进行 3D 转换。
    • preserve-3d:子元素进行 3D 转换。
  5. transform:指定元素进行平移、旋转、缩放等变换操作。可取值:
    • translateX(x):沿 x 轴平移。
    • translateY(y):沿 y 轴平移。
    • translateZ(z):沿 z 轴平移。
    • translate3d(x, y, z):三维平移。
    • scaleX(x):沿 x 轴缩放。
    • scaleY(y):沿 y 轴缩放。
    • scaleZ(z):沿 z 轴缩放。
    • scale3d(x, y, z):三维缩放。
    • rotateX(angle):沿 x 轴旋转。
    • rotateY(angle):沿 y 轴旋转。
    • rotateZ(angle):沿 z 轴旋转。
    • rotate3d(x, y, z, angle):三维旋转。
    • skewX(angle):沿 x 轴倾斜。
    • skewY(angle):沿 y 轴倾斜。
    • matrix(n,n,n,n,n,n):矩阵变换。
    • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):三维矩阵变换。
  6. transition:指定元素过渡效果的相关属性。可取值:
    • transition-property:指定要过渡的 CSS 属性名称。
    • transition-duration:指定过渡效果持续的时间。
    • transition-timing-function:指定过渡效果的时间函数。
    • transition-delay:指定过渡效果延迟的时间。
  7. animation:指定元素动画效果的相关属性。
四、阴影和滤镜样式
  • box-shadow

    box-shadow 属性用于在元素周围创建一个阴影效果,它可以为一个元素添加立体感和深度感。其基本语法如下:

    box-shadow: h-shadow v-shadow blur spread color inset;
    

    其中各参数的含义如下:

    • h-shadow:水平阴影的位置,可正可负,值为0表示无水平阴影,必须设置。
    • v-shadow:垂直阴影的位置,可正可负,值为0表示无垂直阴影,必须设置。
    • blur:阴影的模糊半径,可选,值越大,阴影越模糊,不设置时阴影边缘锐利。
    • spread:阴影的扩散半径,可选,正数表示扩大阴影面积,负数表示缩小阴影面积,不设置时阴影与元素同大小。
    • color:阴影的颜色,可选,默认为黑色。
    • inset:可选,表示阴影是否在边框内部,不设置时阴影在边框外部。

    box-shadow 属性还支持多个阴影,多个阴影之间用逗号隔开即可。例如:

    box-shadow: 2px 2px 10px #666, -2px -2px 10px #666;
    

    box-shadow 属性可以为元素添加阴影效果,同时还可以通过调整各个参数的值,实现不同的阴影效果,例如内阴影、多重阴影等。

    text-shadow 属性用于为文本添加阴影效果,它可以为文本增加立体感和视觉效果。其基本语法如下:

    text-shadow: h-shadow v-shadow blur color;
    

    其中各参数的含义如下:

    • h-shadow:水平阴影的位置,可正可负,值为0表示无水平阴影,必须设置。
    • v-shadow:垂直阴影的位置,可正可负,值为0表示无垂直阴影,必须设置。
    • blur:阴影的模糊半径,可选,值越大,阴影越模糊,不设置时阴影边缘锐利。
    • color:阴影的颜色,可选,默认为黑色。
  • text-shadow

    text-shadow 属性同样也支持多个阴影,多个阴影之间用逗号隔开即可。例如:

    text-shadow: 1px 1px 2px #000, -1px -1px 2px #fff;
    

    上述代码表示为文本添加两个阴影,一个在右下方,另一个在左上方。第一个阴影的水平偏移量为1px,垂直偏移量为1px,模糊半径为2px,颜色为#000;第二个阴影的水平偏移量为-1px,垂直偏移量为-1px,模糊半径为2px,颜色为#fff。

    text-shadow 属性可以通过调整各个参数的值,实现不同的文本阴影效果。通常,为文本添加一个略微模糊、颜色较浅的阴影,可以让文本看起来更加立体和清晰。

  • filter

    filter 属性是 CSS3 中的一个强大属性,它可以为元素添加各种视觉效果,如模糊、颜色调整、亮度、对比度、饱和度等。其基本语法如下:

    filter: filter-function;
    

    其中,filter-function 是一种滤镜函数,用于指定要应用的滤镜效果。常见的滤镜函数有以下几种:

    1. blur()

      用于模糊元素。参数值表示模糊半径,值越大,模糊程度越高。

      filter: blur(5px);
      
    2. brightness()

      用于调整元素的亮度。参数值为一个百分数或小数,表示亮度的相对值。值小于 100% 表示降低亮度,值大于 100% 表示增加亮度。

      filter: brightness(80%);
      
    3. contrast()

      用于调整元素的对比度。参数值为一个百分数或小数,表示对比度的相对值。值小于 100% 表示降低对比度,值大于 100% 表示增加对比度。

      filter: contrast(150%);
      
    4. grayscale()

      用于将元素转换为灰度图像。参数值为一个百分数或小数,表示转换的程度。

      filter: grayscale(50%);
      
    5. hue-rotate()

      用于调整元素的色相。参数值为一个角度值,表示旋转的角度。旋转的角度范围为 0~360 度。

      filter: hue-rotate(90deg);
      
    6. invert()

      用于反转元素的颜色。参数值为一个百分数或小数,表示反转的程度。

      filter: invert(50%);
      
    7. opacity()

      用于调整元素的透明度。参数值为一个百分数或小数,表示透明度的相对值。值小于 100% 表示降低透明度,值大于 100% 表示增加透明度。

      filter: opacity(50%);
      
    8. saturate()

      用于调整元素的饱和度。参数值为一个百分数或小数,表示饱和度的相对值。值小于 100% 表示降低饱和度,值大于 100% 表示增加饱和度。

      filter: saturate(150%);
      

      9、sepia()

      用于将元素转换为深褐色调的图像。参数值为一个百分数或小数,表示转换的程度。

      1. drop-shadow()

        用于为元素添加阴影效果。参数值可以包括一个长度值和两个可选的颜色值。第一个参数表示阴影的水平偏移量,第二个参数表示阴影的垂直偏移量,第三个参数表示阴影的模糊半径,第四个参数表示阴影的颜色。如果只有一个长度值,则表示阴影的水平和垂直偏移量相同。

        filter: drop-shadow(2px 2px 2px #000);
        
      2. url()

        用于引用 SVG 图像或定义自定义滤镜。参数值为一个 SVG 文件或 SVG 中定义的一个滤镜标识符。

        filter: url("filters.svg#filter-id");
        

        上述是一些常见的 filter 函数,还有其他一些函数,如 url()matrix() 等等。使用 filter 属性可以为网页元素添加一些很酷的视觉效果,但同时也需要考虑浏览器兼容性问题。

五、CSS 的3D动画

CSS 3D 动画属性的其他常用属性如下:文章来源地址https://www.toymoban.com/news/detail-731085.html

  1. transform-origin:指定元素变换的基点位置,默认是元素中心点。可取值:
    • x-axis:left、center、right。
    • y-axis:top、center、bottom。
    • z-axis:length。
  2. backface-visibility:指定元素反面是否可见。可取值:
    • visible:默认值,反面可见。
    • hidden:反面不可见。
  3. perspective-origin:指定 3D 转换元素的观察者视角的位置。可取值:
    • x-axis:left、center、right。
    • y-axis:top、center、bottom。
    • z-axis:length。
  4. transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
    • flat:默认值,子元素不进行 3D 转换。
    • preserve-3d:子元素进行 3D 转换。
  5. perspective:指定 3D 转换元素的观察者视角,用于模拟真实 3D 空间。值越小,视角越近,立体感越强。可取值:
    • length:表示长度值,必须为正数,常见单位有 px、em、rem、% 等。
  6. animation:指定元素动画效果的相关属性。可取值:
    • animation-name:指定动画名称。
    • animation-duration:指定动画效果持续的时间。
    • animation-timing-function:指定动画效果的时间函数。
    • animation-delay:指定动画效果延迟的时间。
    • animation-iteration-count:指定动画重复次数。
    • animation-direction:指定动画方向。
    • animation-fill-mode:指定动画效果在开始前和结束后如何显示。
    • animation-play-state:指定动画的播放状态,可以暂停或继续播放。

到了这里,关于CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    兄弟选择器:选择平级元素的唯一办法 -适用:通过已知元素选择之后的平级兄弟元素时 1、相邻兄弟选择器: 2、通用兄弟选择器: 属性选择器: -通过元素的属性来定位元素 1、通用:基本用不着,太泛了 2、自定义:4种 1、精确条件: 2、模糊条件: 3、模糊条件:很少用,

    2024年04月09日
    浏览(55)
  • 👾 笔记 | react-transition-group 实现路由切换过渡动画

    React 18 React router v6 React Transition Group 是一个 React 库,专门用于在 React 应用中管理和处理过渡动画效果。这个库提供了一组组件,包括 Transition、CSSTransition、SwitchTransition 和 TransitionGroup,帮助在组件的进入和退出时应用动画效果。 Transition 是一个与平台无关的组件,通常结合

    2024年03月09日
    浏览(68)
  • vue 动画(transition)

    在插入、更新、移除 DOM 元素时,在合适的时候给元素添加样式类名,配合 CSS 样式使用,实现动画效果。 通俗来讲,就是将要进行动画操作的 DOM 元素用 transition 标签包裹起来。在此html元素运动前,运动中,运动后这三个时候 vue 会给此 DOM 元素添加不同的 class ,然后配合

    2024年02月03日
    浏览(36)
  • transition-group过渡动画

    安装lodash库 cnpm install lodash -S 安装lodash-type cnpm install @types/lodash -D

    2024年02月09日
    浏览(38)
  • vue折叠展开transition动画使用keyframes实现

    需求,我正常的菜单功能有隐藏与显示功能,需要增加动画 打开的时候宽度从0到300,关闭的时候,宽度从300到0

    2024年01月25日
    浏览(50)
  • transition 实现div伸缩动画、3D翻转动画(vue版)、elementui走马灯

    代码   template     div         div               el-carousel :interval=\\\"4000\\\" type=\\\"card\\\" height=\\\"500px\\\"                   el-carousel-item v-for=\\\"(i,index) in imageData\\\" :key=\\\"index\\\"                     img :src=\\\"i.src\\\" style=\\\"width: 100%;height: 100%;\\\"                   /el-carousel-item       

    2024年02月02日
    浏览(37)
  • Vue3 Transition组件给页面切换加动画效果

    本文分享一个Vue页面组件之间切换的动画效果,主要应用在移动端设备,使用户在切换页面或者切换组件的时候交互体验感更好一些,使用的是Vue3自带的Transition组件。 先简单介绍一下 Transition 组件,来自官方介绍: Transition 是一个内置组件,这意味着它在任意别的组件中都

    2024年02月09日
    浏览(41)
  • css3的过度效果transition支持哪些属性,Transition 所支持的css属性

    transition-property是用来指定当元素其中一个属性改变时执行transition效果: 所支持的属性类型如下: 名称 描述 属性 color:  通过红、绿、蓝和透明度组件变换(每个数值处理) 如: background-color, border-color, color, outline-color等css属性; length: 真实的数字 如: word-spacing, width, verti

    2024年01月17日
    浏览(49)
  • < 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>

    Vue 提供了两个内置组件,可以帮助用户制作基于状态( v-if / v-show )变化的过渡和动画: Transition 会在一个元素或组件 进入 和 离开 DOM 时应用动画。本章节会介绍如何使用它。 TransitionGroup 会在一个 v-for 列表中的元素或组件被插入,移动,或移除时应用动画。 TransitionGrou

    2024年02月02日
    浏览(37)
  • 【CSS笔记】CSS动画效果(2d、3d)之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画

    这篇文章,主要介绍CSS动画效果(2d、3d)之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画。 目录 一、2d动画 1.1、渐变色 (1)线性渐变色 (2)径向渐变色

    2024年02月02日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包