一、动画 - 过渡效果transition

news/2024/9/16 18:40:59/

内容目录:

  • 过渡动画;
  • 过渡动画的属性;

一、过渡动画

 过渡(transition)作用:- 通过过渡可以指定一个属性发生变化时的切换方式- 通过过渡可以创建一些非常好的效果,提升用户的体验

现在我们通过一个小项目来了解这个过渡动画用在哪里,注意这里不借助js,是纯css来实现?

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box1 {width: 500px;height: 500px;background-color: silver;/* 开启bfc,防止重叠 */overflow: hidden;}.box1 div {width: 100px;height: 100px;/* 特别注意,当这里设置margin的时候,因为可能上边距重贴,导致无法正常下移动所以必须在box1上,写 overflow: hidden;*/margin-bottom: 100px;}.box2 {background-color: green;}</style></head><body><div class="box1"><div class="box2"></div></div></body>
</html>

请添加图片描述
需求:
当我鼠标移动到box1的时候,我要改变box2的宽高为200.

实现:

/* 根据后代元素选择器: */.box1:hover .box2{width: 200px;height: 200px;}

写上后,发现宽高会变大,但是效果是box2突然变大。

优化:

  .box2 {background-color: green;/* box2的宽高,都在0.3s内过渡中变大 */transition: all .3s; }
或者.box2 {background-color: green;/* 仅仅只让hegiht 高度属性在0.3s缓慢变大道200px */transition: height .3s;}

二、过渡动画属性

1.transition-property - 指定要执行的过渡的属性;

  • 多个属性间是用,隔开;
  • 如果所有属性都需要过度,则使用all关键字,
  • 大部分属性都支持过渡效果
 .box2 {background-color: green;/* 这个表示所有属性都过渡变化transition-property:all; *//* 这个表示,只是width进行过渡变化transition-property: width;*//* 宽,高,属性都进行过渡变化 */transition-property: width, height;}

2.transition-duration - 指定过渡效果的时间

需求:比如我想当用户鼠标移动到box1上时,box2 在 2s内缓慢变大(宽高都变),且颜色变成橘色。

   .box2 {background-color: green;/* 这个表示所有属性都过渡变化*/transition-property:all; /* 指定过渡效果的时间 ,时间单位s , ms; 1s = 1000ms*/transition-duration: 2s;}或者 - /* 过渡时间还可以这样用 */.box2 {background-color: green;/* 可以针对不同的属性,指定对应的时间 */transition-property: height, width;transition-duration: 100ms , 2s;}/* 根据后代元素选择器 :太突然变大 */.box1:hover .box2{width: 200px;height: 200px;background-color: orange;}

注意:必须是从一个有效数值向另外一个有效数值过渡,不能是auto 去 到另一个数值,就可能设置了过渡效果也会无效。 比如box2 原来width:auto, 现在你设置当hover时, box2:200px, 然后加过渡效果,这就是无效的

比如我想给box2 margin-left 做过渡效果。让一开始从最后margin-left:400px;,往回走到最开始margin-left: 0;。 此时的400和0就都是有效数值,他们就是从400 像 0 过渡。

 .box2 {margin-left:400px;background-color: green;transition-property:all; transition-duration: 2s;}.box1:hover .box2{margin-left: 0;}

下面是错误的:
浏览器是无法知道怎么从auto 变到0, 这样展示的效果就是一下就移动0了。

   .box2 {/* 当我们把这个换成auto, auto就不是有效数值,过渡效果就无法实现 */margin-left:auto;background-color: green;transition-property:all; transition-duration: 2s;}.box1:hover .box2{margin-left: 0;}

3.transition-timing- function - 过渡的时序函数

可选值(具体看下面分析):
ease ---------默认值,慢速开始,先加速,再减速
linear --------匀速
ease-in ------加速运动
ease-out -----减速运动
ease-in-out — 先加速,后减速
cubic-bezier()–贝塞尔曲线来指定时序函数
steps()分步执行过渡效果, 可以把整个效果分成第一步,第二步…
可以设置第二个值, end, 在时间结束时执行过渡(默认值);start, 在时间开始时执行过渡

需求:
过渡动画,比如让box2,box3,的margin-left 从0 过渡到 400, 这个过程是怎么过渡的, 可以匀速,可以加速, 这就需要这个属性来控制。

实现:

  1. 先来设置一个没有加这个属性的效果,发现box2,box3过渡效果是一样的。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box1 {width: 500px;height: 500px;background-color: silver;/* 开启bfc,防止重叠 */overflow: hidden;}.box1 div {width: 100px;height: 100px;margin-bottom: 100px;margin-left: 0;}.box2 {background-color: green;transition-property:all; transition-duration: 2s;}.box3{background-color: orange;transition-property: all;transition-duration: 2s;}/* 表示box1下的所有元素都移动,即box2,box3 */.box1:hover div{margin-left: 400px;}</style></head><body><div class="box1"><div class="box2"></div><div class="box3"></div></div></body>
</html>

2.接下来对box2进行加工

   .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 ease:默认值,慢速开始,先加速,再减速, 这里发现box2和box3 都是一样的匀速运动。效果上没有区别*/transition-timing-function: ease;}

试试第换下面的属性值:

  .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 linear 匀速, 此时对比box2,box3,会发现,box2一直匀速,box3 因为没有单独设置transition-timing-function, 他默认就是ease 先加速,在减速,所以很容易发现他们出现前后速度不一的运动*/transition-timing-function: linear;}

3.通过cubic-bezier()–贝塞尔曲线来指定时序函数

  • 我们不用自己设计,直接通过网https://cubic-bezier.com (来设置这个函数里面的值,注意是看左下角,的#后面的数值)
    在这里插入图片描述
  .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 如果用贝塞尔曲线表示匀速*//* transition-timing-function: linear; */transition-timing-function:cubic-bezier(0,0,1,1);}

这里的(0,0)就是粉红色手柄坐标,(1,1) 是蓝色手柄坐标,通过这两个坐标就可以确定这个贝塞尔曲线。

  • 我们可以通过拖动这两个手柄,来自定义贝塞尔曲线,曲线的高低,就是加速和减速。
    比如这里的拖动后,我们直接看最顶部的对应的值,复制他。
    请添加图片描述
   .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 自己设计的贝塞尔曲线*/transition-timing-function:cubic-bezier(.24,.95,.82,-0.88);}
  1. steps()分步执行过渡效果.
    前面没有设置这个的时候,都是通过过渡效果,很流畅的margin-left 进行位移。
    现在加了这个后,会发现他是根据的数值,分步骤去位移,是停顿式的走,不是流畅的。
   .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 表示box2 从 margin-left: 0 过渡 到400 在2s内分3步,走到位*/transition-timing-function:steps(3);}
  • steps()分步执行过渡效果
    可以设置一个第二个值:
    end, 在时间结束时执行过渡(默认值);
    start, 在时间开始时执行过渡 ;
  .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡时序 steps 其实他里面其实是可以传第二个参数,我们没有写,他其实默认是end.比如这里是2步,也就是整个动画分成1s 1s, 然后box2 在每个1s 是他的开始,还是结束的时候开始运动,这里是end, 就表示1s结尾,在继续运动,往右走。*//* transition-timing-function:steps(2,end); *//* 如果我们改成start, 就表示每个的1s 开始就动画,你会发现运行后,里面就开始运动 */transition-timing-function:steps(2,start);}
  1. transition-delay 延迟效果
 .box2 {background-color: green;transition-property:all; transition-duration: 2s;/* 过渡效果的延迟,等待相应的时间后再执行 */transition-delay:2s;}

6.上面这么多属性,transition 可以同时设置过渡相关所有属性。
只有一个要求,如果要写延迟,则两个事件中第一个是持续时间,第二个是延迟时间。其他的没有顺序

 .box2 {background-color: green;/* transition-property:all; transition-duration: 2s;transition-delay:1s; *//* 一次性就设置完成*/transition:2s margin-left 1s cubic-bezier(.25,.1,.25,1);}

http://www.ppmy.cn/news/478783.html

相关文章

如何让我们的人生,拥有更多的可能性?

一一道出的第52篇原创 本文6200字&#xff0c;阅读时长13分钟 作者|柳一一 来源|一一道出&#xff08;ID:yiyidaochu&#xff09; 转载|请联系&#xff08;微信&#xff1a;liu82029088&#xff09; 大家好&#xff0c;我是柳一一。 思维定式存在于我们每个人的大脑中。一…

【翻译】数据人文主义:连接人与数字

豆皮粉儿们&#xff0c;又见面了&#xff0c;今天这一期&#xff0c;由字节跳动数据平台的玄魂&#xff0c;给大家带来一篇关于可视化作品诞生流程的翻译文章。 原文链接&#xff1a;https://devikakhowala.com/data-humanism注&#xff1a;部分内容未完全遵照原文进行翻译 为什…

SaaS模式、技术与案例详解——第11章 可配置性

【本章导读语】 东临碣石&#xff0c;以观沧海。 ________曹操&#xff0c;《观沧海》 就成熟的SaaS应用而言&#xff0c;元数据服务供应商为客户提供了定制和配置应用、满足其特定需求的主要手段。 SaaS模式的可配置性体现了SaaS不同于ASP的特性。SaaS的可配置性表现在用户…

清晰明了,什么是贝叶斯定理?朴素贝叶斯又是什么?

什么是贝叶斯定理&#xff1f;朴素贝叶斯又是什么&#xff1f; 一、提出问题&#xff1f;二、什么是贝叶斯定理1. 贝叶斯派和频率派2. 贝叶斯推断与应用 三、朴素贝叶斯有多“朴素”四、每个人都懂贝叶斯 来源&#xff1a;大数据 导读&#xff1a;如果有一天&#xff0c;我们知…

什么是贝叶斯定理?朴素贝叶斯有多“朴素”?终于有人讲明白了

导读&#xff1a;如果有一天&#xff0c;我们知道的统计规律和现实生活发生了冲突&#xff0c;又或者前人的经验不符合亲身经历&#xff0c;那么该怎么办&#xff1f;面对经验与现实的矛盾&#xff0c;我们需要一种应对方案。 作者&#xff1a;徐晟 来源&#xff1a;大数据DT&a…

win10控制面板快捷键_你没玩过的全新版本Win10,这些操作你知多少?

不知不觉&#xff0c;Windows 10与我们相伴已经整整四个年头了&#xff0c;从最开始的组团抗拒到现在的默默接受&#xff0c;个中滋味相信谁心里都有个数。近日微软开始推送“Win10更新五月版”&#xff0c;那么Win10中到底都有哪些“骚”操作&#xff1f;一起来看看吧。 1、夜…

win10照片查看器_19个Win10使用小技巧,看看你知道哪些?

从Windows10发布之日算起&#xff0c;它已经问世7个年头了。虽然这几年&#xff0c;它出现了各种小bug&#xff0c;但依然不妨碍它是一款好用的系统。毕竟是9102年了&#xff0c;你想用老系统也回不去了。 与其抗拒&#xff0c;不如敞开胸怀接受。今天分享给大家15个非常好用的…

win10照片查看器_非常好用的19个Win10小技巧,学会之后事半功倍

1、卓越性能模式 Win10内部包含多种电源模式&#xff0c;比如“高性能”模式&#xff0c;可以最大程度榨干系统的潜能。但除了这个“高性能”以外&#xff0c;Win10还有一种级别更高的电源模式&#xff0c;称为“卓越性能模式”。 卓越性能模式并非公开功能&#xff0c;我们需要…

win10控制面板快捷键_你没玩过的全新版本 Win10这些操作你知多少

不知不觉&#xff0c;Win10与我们相伴已经整整四个年头了&#xff0c;从最开始的组团抗拒到现在的默默接受&#xff0c;个中滋味相信谁心里都有个数。 近日微软开始推送“Win10更新五月版”&#xff0c;那么Win10中到底都有哪些“骚”操作&#xff1f;一起来看看吧。 1、夜间模…

win10控制面板快捷键_你没玩过的全新版本:Win10这些操作你知多少

不知不觉&#xff0c;Windows 10与我们相伴已经整整四个年头了&#xff0c;从最开始的组团抗拒到现在的默默接受&#xff0c;个中滋味相信谁心里都有个数。近日微软开始推送“Win10更新五月版”&#xff0c;那么Win10中到底都有哪些“骚”操作&#xff1f;一起来看看吧。 1、夜…

win10照片查看器_Win10小技巧,帮你事半功倍

win10已经发布4年了&#xff0c;还有很多小技巧你知道吗&#xff1f;今天分享给大家15个非常好用的Win10小技巧&#xff0c;学会之后让你娱乐办公都事半功倍。 1、卓越性能模式 Win10内部包含多种电源模式&#xff0c;比如“高性能”模式&#xff0c;可以最大程度榨干系统的潜能…

基本知识 100155

基本知识 100155 单选题 A1 1.外伤性眼内炎的治疗首选( ) 答案&#xff1a;( B ) A:充分散瞳 B:大剂量抗生素 C:糖皮质激素 D:玻璃体切割术 E:玻璃体内药物灌注 单选题 A1 2.放射性视神经病变的发病机制主要是 放射性视神经病变确切的发病机制尚不清楚&#xff0c;…

西瓜视频 iOS Voice Over 无障碍适配实践

动手点关注 干货不迷路 &#x1f446; 为了解决老年人、残疾人等群体在使用互联网等智能技术时遇到的困难&#xff0c;自 2021 年春季开始&#xff0c;西瓜视频开展了无障碍与适老化改造专项行动。陆续完成了无障碍影院、色弱模式、护眼模式、大字号模式、外挂字幕等多个改造需…

自媒体运营、平面设计封面如何搭配?3大色彩搭配网站推荐

之前给大家分享了很多无版权的图片网站、音乐素材网站&#xff0c;但日常设计我们常常会遇到配色的问题&#xff0c;不管是设计作图、动效制作还是自媒体封面都需要用到配色&#xff0c;不同的色彩搭配也会出现不同的效果。今天就来跟大家分享一波神仙配色设计网站。 一、Cool…

关于电气工程及其自动化学科,国家电网的这些事你都知道吗?

对电气工程及其自动化的认识 1.专业认识 1.电气工程及其自动化学科 电气工程及其自动化涉及电力电子技术&#xff0c;计算机技术&#xff0c;电机电器技术&#xff0c;信息与网络控制技术&#xff0c;机电一体化技术等诸多领域&#xff0c;是一门综合性较强的学科&#xf…

音视频开发系列(38)OpenGL ES 滤镜 (篇一)

一、颜色和滤镜的基本知识 我们是如何看到图不同颜色的&#xff1f; 图片来源&#xff1a;[播放器色觉辅助功能开发&#xff0c;助力提升色觉障碍用户的视频观看体验] 不同波长的光具有不同的颜色&#xff0c;在我们可见光范围内蓝色光波长是短波&#xff0c;长波长的光呈现红…

挺难过的,测完后发现自已有点色盲--色盲、色弱测试图

色盲、色弱测试图 通过下面一组图片&#xff0c;测测您的辨色能力&#xff1a;红绿色盲者中的红色盲者只能找到紫色的线&#xff0c;而绿色盲者只能找到红色的线&#xff0c;但红绿色弱者、正常者则两线都找得到。红绿色盲者中的红色盲者能读出&#xff16;&#xff0c;而绿色…

与孩童家长的一段奇异的对话:父母视觉正常,孩子却患色盲

一位陌生孩童家长的求助 我写过一篇关于色盲的博客。前不久&#xff0c;一位女孩的妈妈看过后与我联系&#xff0c;她说孩子患有红色盲&#xff0c;很是为孩子担心。简单地交流后&#xff0c;知道这位女士和孩子的爸爸视觉都是正常的&#xff0c;但是孩子却是色盲&#xff0c;…

每日 30 秒 ⏱ 无障碍世界

简介 无障碍、DOM 小细节、前端开发、a11y、Accessibility 无障碍的英文为 Accessibility 由于单词拼写过长往往被缩写为 a11y 其中 11 指的是中间有11个字母。 无障碍指的是在使用过程中&#xff0c;不管什么类型的用户都可以正常使用。生活中最常见的就是无障碍设施 相信很多…

人眼感知到的颜色与真实物理世界的颜色有什么区别?

2014.08.17补充 1。人眼看到的颜色与可见光谱上的频率是怎样对应的&#xff1f;混和颜色可以代替单一颜色&#xff08;频率的光&#xff09;吗&#xff1f; 2。如何判断不同人眼中的同一颜色&#xff08;频率的光&#xff09;是否一样&#xff1f;不同的生物呢&#xff1f;如果…