css动画效果 位置移动_CSS 进阶之动画

880f0d902663e5d999653e574f0ad8e9.png
前端入门系列视频教程:
前端基础16课--从入门到放弃 - 网易云课堂​study.163.com
本文适合有 CSS 基础同学阅读

我们都知道动画电影由一帧一帧的静态画面拼接而成,一秒动画有24帧画面,如果低于24帧,人眼即可感知画面切换,就会有卡顿的感觉。

CSS 中,如果按一秒24帧的画法来写代码,未免太过繁琐。所以我们把动画拆解为动作(transition),一个动作表示从一个状态到另一个状态的变化,然后把一组动作串起来,即是 CSS 中的动画(animation)

例如:

6b0c7eab706579b35cbb18bc5530fdda.gif
CSS 动画

上图中,蓝球的动画可以分解为四个动作:向右,向下,向左,向上;

下面来详细的讲一下动作和动画

1、动作 transition

transition 直译为过渡,即给属性变化添加过渡效果

我们知道,如果两个样式属性被赋在同一个元素上,后一个样式属性会覆盖前一个,比如:

.blueball {
  ...
  opacity: 1; /* 不透明 */
}
.blueball:hover {
  opacity: 0.3; /* 透明度 30% */
}

当我们把鼠标放在蓝球上时,蓝球会立刻变透明

6350308580e5e1111e5b3db1696cb1ce.gif
普通的属性变化

而如果我们给蓝球增加 transition 属性,其透明度变化会有一个过渡

.blueball {
  ...
  opacity: 1;
  transition: opacity 1s;  /* 改变 opacity 属性,持续1秒 */
}
.blueball:hover {
  opacity: 0.3;
}

8b5192024ff78f9aa2b0c092493a6b4b.gif
带过渡效果的属性变化

这里的 transition 属性其实是一个简写形式,它由四部分组成,分别是(冒号后为默认值):

transition-property: all; /* 过渡属性 */
transition-duration: 0; /* 耗时 */
transition-timing-function: ease; /* 效果,默认 ease(缓入缓出) */
transition-delay: 0; /* 延迟 */

如果考虑到默认值,上面过渡效果的例子中,可以进一步简写成transition: 1s

transition 可以同时给多个属性添加过渡效果,比如可以在移动元素的同时,改变其透明度。但不管有多少个属性同时在变化,这种过渡效果只能是一次性的,也就是单个动作.

2、动画 animation

transition 只能做单个动作,如果动画包含多个动作,这时候就需要 animation

我们先来看个例子:

c382ca7ce14eca4487cd06ad9069fa35.gif
CSS animation

这个动画明显由两个动作组成:蓝变绿,绿变橙。

两个连续的线段有三个关键点,两个连续的动作必然也有三个关键帧(keyframe),我们通过定义这三个关键帧(起点,蓝变绿,终点)来定义这两个动作。

我们来看一下这个动画的 CSS 代码

.blueball {
  ...
  background-color: #0080ff; /* 蓝色 */
  position: relative;
  animation: forward 4s; /* 执行 forward 动画,耗时 4s */
}

/* 三个关键帧: 起点(蓝色),蓝变绿,终点(橙色) */
@keyframes forward {
  0% {left: 0; }
  50% {left: 200px; background-color: #009a61;}
  100% {left: 400px; background-color: orange;}
}

@keyframes中的百分比,代表时间尺度上的百分比 ,后面跟着的是此时间点的样式。

同样的,animation: forward 4s;也是简写形式,完整的 animation 属性包括(冒号后为默认值):

animation-name: none; /* 动画名称 */
animation-duration: 0; /* 耗时 */
animation-timing-function: ease; /* 效果,默认缓入缓出 */
animation-delay: 0; /* 延迟 */
animation-iteration-count: 1; /* 循环次数 */
animation-direction: normal; /* 正放 or 倒放 */

CSS 动画的知识点,就这么些,但目前看来,我们只能动动元素的大小,位置,透明度,颜色什么的,有点单调。为了给动画加点料,下面介绍一下 transform

3、transform

transform 直译为变换,虽然名字和 transition 有点像,但是它和动画无关。transition 是一个状态到另一个状态的变化过程,而 transform 仅仅是静止的最终状态。

例如:如果想把蓝球从水平排列中,向下移动100px

187b1ad3e915844fd0293b3cc9b98686.png
transform 位移

即可以使用相对定位

.blueball {
  ...
  position: relative;
  top: 100px;
}

也可以使用 transform

.blueball {
  ...
  transform: translateY(100px);
}

它们的效果是一致的,都是把蓝球向下移动 100px

除了位移,tranform 还可以做很多变换

  • matrix 矩阵变换
  • translate 位移
  • scale 缩放
  • rotate 绕轴旋转
  • skew[skju:] 倾斜
  • perspective 透视距离

每种变换的具体参数说明可以参照 w3school 文档

这里有几点需要说明

1、transform 原点位于元素中心

我们知道 CSS 元素默认的坐标系,原点在左上角;而 transform 变换的原点位于元素中心

5d36bb54adb18265881e940d2c37d937.png
transform 坐标系

图中亦标识了绕轴旋转(rotate)时的默认方向,为了便于记忆,你可以理解为:你站在原点位置,看向正轴方向,默认旋转方向为逆时针旋转

2、理解 skew(倾斜)

skew 倾斜变换并不直观,为了便于记忆,你可以这样想像:你拉住了矩形的右下角,左右横拉,即是沿X轴倾斜

16a1b48b9ad6a89d57a455299bfe23a2.png
transform: skewX

同样的,skewY 即是抓住右下角上下拉

f0e51b3e797b0069ba1ffd3cefa7d8e4.png
transform: skewY

3、理解 perspective(透视)

perspective 表示透视距离,可简单理解为眼睛离屏幕的距离

transform: translateZ(100x); /* 向Z轴正向移动 100px */
perspective: 200px; /* 透视距离 200px */

我们用一张图来说明一下

4fc6d9ee1943c579fb6b9a5dccab736b.png
transform 透视
  • d 为透视距离 200px
  • Z 为元素在Z轴上移动的距离 100px
  • 虚线的圆表示元素实际的位置
  • 而蓝色的圆,是元素在屏幕上的投影,也是最终展示的效果

其它变换属性比较好理解,除了matrix(这个需要单独开一篇来讲),就不再一一缀述

注:由于画图功力有限,tranform 部分图片取材自这篇文章: transform | Codrops CSS Reference

4、CSS 动画动手玩

最后以一个动画来结束这篇文章吧,想一想用到了哪些方法

2d1523c9580ba2a49429fece2b8b38cc.gif
人生如汪

代码在这里:Try it on CodePen


如果觉得我写的不错,欢迎点赞评论分享

更多关于 CSS 和 JS 的文章:前端同学 - 文章索引

顾煜
关注 关注
  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动互联-CSS动画
dear_little_deer的博客
02-27 146
不能在同一个元素上添加多个transform,后面的transform会覆盖掉前面的transform只会对于,非块级元素,需要进行元素转换多个transform属性值的使用,可以写在一个transform里面注意:顺序不同,会导致最后的位置不同。
CSS制作移动动画效果
w__qwwq的博客
09-09 6772
CSS制作移动动画效果
anime.js 图片位移动画_CSS 进阶动画
weixin_39710966的博客
11-22 666
前端入门系列视频教程:前端基础16课--从入门到放弃 - 网易云课堂​study.163.com本文适合有 CSS 基础同学阅读我们都知道动画电影由一帧一帧的静态画面拼接而成,一秒动画有24帧画面,如果低于24帧,人眼即可感知画面切换,就会有卡顿的感觉。CSS 中,如果按一秒24帧的画法来写代码,未免太过繁琐。所以我们把动画拆解为动作(transition),一个动作表示从一个状态到另一个状态的变...
CSS——动画(animation)
Fan_web的博客
08-15 1088
本文主要分享了CSS中的过渡、动画、变形、旋转、缩放等的样式的语法内容。下一篇将分享到CSS的less知识。
旋转、缩放、移动:掌握CSS Transform动画的终极指南!
云端源想的博客
04-11 3080
CSS变形动画是利用CSS3的transform属性创建的动画效果。它可以使元素旋转、缩放、倾斜甚至翻转,让静态的网页元素动起来,为用户带来更加丰富的交互体验。
css3.0.rar_CSS3_css3.0_html chm
09-23
6. **动画(Animations)**:结合关键帧(`@keyframes`),CSS3可以实现平滑的元素动画,增强用户体验。 7. **过渡(Transitions)**:`transition`属性让元素在不同状态间平滑过渡,比如颜色改变、大小调整等。 8...
CSS进阶-盒子与动画
极正君
10-30 761
CSS3动画 - 优秀书籍推荐 + 优秀文章推荐
HTML CSS.rar_HTML CSS_HTML+css游戏_HTML5手册
09-20
例如,你可以学习如何通过CSS实现游戏对象的移动、旋转、缩放等动画效果,或者如何利用CSS Flexbox或Grid布局创建游戏界面。 "HTML5手册"通常包含关于HTML5新特性的详细指南,包括语义化标签(如、、等)、离线存储...
前端提高篇(五十一)CSS3进阶14:transition过渡动画
sgegv的博客
04-22 1129
如果我们想要让这个平移的效果缓慢一点,就可以用transition过渡需要过渡效果的属性是transform,设定过渡完成的时间是1000ms在css添加transition:#demo {height: 100px;width: 100px;line-height: 100px;background: pink;transition: transform 1000ms;}可以看到,平移的过渡缓慢了很多我们希望,不仅向右平移600px,高度也要发生变化,也是1s实现,transition,用逗号隔开,css
用Move.js配合创建CSS3动画的入门指引
12-09
它提供了一种简洁的API,让开发者能够通过简单的函数调用来实现复杂的CSS3动画效果,避免了直接操作CSS3语法时可能遇到的困难和复杂性。 【基础用法】 在CSS3中,我们通常使用`transition`属性来定义元素在状态变化...
css3特效动画按路径移动 rect
06-21
css3特效,css3动画
CSS动画】渐变,位移、倾斜、过渡、旋转、缩放
m0_71500484的博客
08-08 601
background-image:linear-gradient:(to 方向,颜色1,颜色2);transform实现实现文字或图像的旋转、缩放、倾斜、移动。方向可以是对角,也可以是角度(角度deg)动画开始from,里面包含动画的初始状态。颜色后面可以添加百分比或像素设置区域;动画结束to,里面包含动画的结束状态。渐变方向默认为从上到下。
CSS动画
sinat_34032652的博客
05-31 338
       前端实现页面动画,可以用CSS也可以用JS。基本上我们会有这样的一个简单的概念,CSS动画效果由浏览器控制和渲染,理论上比 JavaScript 的动画效果性能好,但是控制上没有 JavaScript 那么灵活方便。        CSSCSS3中实现了动画效果CSS3属性中有关制作动画的有三个:transform、transition和animation。一、transfo...
原生css页面滑动到指定位置开始动画_html/css 滚动到元素位置,显示加载动画
weixin_39806818的博客
12-22 1865
每次滚动到元素时,都显示加载动画,如何添加?元素添加初始参数以上图中的动画为例,添加俩个左右容器,将内容放置在容器内部。添加初始数据,默认透明度0、左右分别移动100px。1 //左侧容器2 .item-leftContainer{3 opacity:0;4 transform:translateX(-100px);5 }6 //右侧容器7 .item-rightContainer{8 opa...
UI设计素材干货模板|移动按钮的“悬停效果
awayaya1的博客
07-11 564
标准的屏幕页面许多元素。按钮上的悬停效果可以提供视觉反馈来告知用户可以与之交互的内容。但是有一个问题-悬停效果是针对桌面应用程序的,而不是针对移动应用程序的。 初学者往往掌握不好效果,在移动应用程序上使用悬停效果会导致在点击时按钮保持在悬停状态。这种效果不仅使用户感到困惑,而且当他们被迫双击按钮以启动操作时,也会使他们感到沮丧。 初学者不妨先到搜UI (SOOUI)对一些成功案例,进行临摹练习,相信会给网页设初学者很好的体验! 美丽的按钮悬停 移动按钮的目标尺寸小于桌面按钮的尺寸,击中难度更.
css动画效果_【开发小技巧】029—用CSS如何制作一个波浪形文本动画效果
weixin_39676979的博客
11-29 211
在今天的文章里,我们采用HTML和CSS来实现一个波浪形的动画文本。它是最简单的CSS动画效果之一。对于初学者来讲,这是学习CSS伪元素概念的最佳示例之一。实现方法,通过结合使用一些CSS属性来执行获取波浪文本的基本思想。主要的“主体”部分是通过使用标记内的标记创建的。CSS代码用于创建HTML结构的“主体”部分的波浪形文本。HTML代码如下:<div class="wavy"&g...
css3动画之小方块移动
宇智波带土
01-08 450
css3动画直小方块移动
CSS动画效果
最新发布
weixin_71949204的博客
08-26 763
3、以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。0% 是动画的开始时间,100% 动画的结束时间。2、创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。在动画过程中,能够多次改变这套 CSS 样式。5、在CSS样式中,用animation属性来应用 @keyframes所定义的动画。语法: 创建动画:@keyframes 调用动画:animation。1、通过 @keyframes(关键帧动画) 规则,您能够创建动画
CSS3动画-图片在框中上下移动
xm_w_xm的博客
08-21 6538
  &lt;a class="cgzslj" :href="jumpcgzs"&gt; &lt;img src="../../assets/new/成果展示.png" style="margin-left:-5px" height="30" width='200' alt="logo" title="图片上下移动" c
CSS3动画效果详解与实例
本文将对CSS3的动画效果进行深入解析,重点介绍三个核心特性:transition(过渡属性),animation(动画属性),以及transform(2D/3D转换属性)。首先,我们来了解一下transition,它是CSS3中的基础动画工具,通过`...
写文章

热门文章

  • css动画效果 位置移动_CSS 进阶之动画 16998
  • 实时预览水印效果_巧用PPT制作满屏斜向图文水印 5155
  • signature=caf1e99ac9ac407b9c928d57b6757f28,恶意软件分析 & URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析... 5097
  • java中spi是什么_Java中的SPI 4897
  • java中include标签的用法_jsp中include的两种用法 4611

大家在看

  • C语言 | Leetcode C语言题解之第423题从英文中重建数字
  • Java | Leetcode Java题解之第424题替换后的最长重复字符
  • Python | Leetcode Python题解之第424题替换后的最长重复字符
  • C语言 | Leetcode C语言题解之第424题替换后的最长重复字符
  • Golang | Leetcode Golang题解之第423题从英文中重建数字

最新文章

  • 二维码在线生成网页源码
  • litellm openai 标准格式的支持100+ 大模型的负载均衡&异常fallback 框架
  • 从英语到SQL:ORACLE APEX AI弥合语言鸿沟
2024年3篇
2021年167篇
2020年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家徐州玻璃钢景观雕塑深圳常用商场美陈批发价温州玻璃钢雕塑珠海透明玻璃钢雕塑制作玻璃钢雕塑价格表南阳公园标识玻璃钢景观雕塑福州玻璃钢卡通雕塑公司山东景区玻璃钢雕塑设计新乡大型校园玻璃钢雕塑厂家潍坊玻璃钢公仔雕塑广西石雕雕塑玻璃钢玻璃钢仿铜雕塑哪个比较好玻璃钢龙凤雕塑-合肥专业玻璃钢雕塑多少钱信阳校园玻璃钢雕塑定做江苏省玻璃钢雕塑生产厂家成都玻璃钢雕塑施工方案六安商场美陈布展沈阳梅州玻璃钢动物雕塑玻璃钢蔬菜雕塑哪家实惠绵阳成都商场美陈排行麻城玻璃钢座椅雕塑深圳大型商场美陈供货商气球商场美陈哪里好衡阳市玻璃钢雕塑六盘水玻璃钢雕塑制作厂家梅州玻璃钢动物雕塑生产淮北人物卡通玻璃钢雕塑黔南州商场美陈布展雕塑用玻璃钢型号香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化