「趣学前端」昨天画了一张小滑板,今天看我用CSS让它滑起来

简介: 用技术实现梦想,用梦想打开创意之门。今天分享前端CSS中的transform知识点。

背景

我身边一些非互联网技术从业的朋友,偶尔看我转发到朋友圈的文章,会表示出一定的兴趣。前段时间,有朋友问我公众号的问题,所以我来了灵感,准备写一个趣学前端系列,适用于零基础、新手前端或者想把编程当做兴趣培养的人。

学问必须合乎自己的兴趣,方可得益。 ——莎士比亚

上篇习题解析

上一篇结尾留了一个小习题,先来看看,3D环绕旋转的效果是如何实现的。(点击查看完整代码)

想要实现动画效果,需要借助CSS提供的animation属性,来设置元素的动画效果。

3D环绕的旋转动画,其实就是一个从某个角度到另外一个角度的过度,然后配合循环播放的动画效果。

水平的旋转,是元素沿着Y轴在运动。所以设置的过度效果是沿着 Y 轴的 3D 旋转。即transform: rotateY(360deg)。


知识点讲解

动画有趣不,今天就来聊聊animation动画属性。

动画效果

类型

效果展示

实现方案

滑滑板

元素的animation属性可以实现动画效果。

如果想要动画循环, animation-iteration-count属性不设置值,默认是无限次播放。

滑板没有设置 animation-iteration-count的值,所以是循环滑动的。

玻璃球碰撞

为元素添加animation-delay的属性值,可以实现元素的动画延迟开始的效果。

第一个玻璃球先开始,到达第二个玻璃球的时间为2s,所以第二个玻璃球设置的animation-delay属性值为2s。

跳动的篮球

🏀篮球因为拥有弹力,所以在拍动的时候,可以触及到地面之后弹起来。

元素的animation-timing-function 属性可以定义如何完成动画周期,可以设置完成速度是曲线的,可以先快后慢或者先慢后快。

工作中的时钟

时钟的时针和分钟顺时针转动一圈。设置开头动画从角度0开始,结束动画到达角度360度,便可以完成顺时针一圈。


知识点

以下知识内容来自于菜鸟教程

属性名

作用

属性值

animation

设置元素动画效果。

animation-name:指定要绑定到选择器的关键帧的名称

animation-duration:动画指定需要多少秒或毫秒完成

animation-timing-function:设置动画将如何完成一个周期

animation-delay 设置动画在启动前的延迟间隔。

animation-iteration-count:定义动画的播放次数。

animation-direction:指定是否应该轮流反向播放动画。

animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

animation-play-state:指定动画是否正在运行或已暂停。

initial:设置属性为其默认值。 阅读关于 initial的介绍。

inherit:从父元素继承属性。 阅读关于 initinherital的介绍。

animation-delay

属性定义动画什么时候开始。

time:可选。定义动画开始前等待的时间,以秒或毫秒计。默认值为0。

animation-direction

属性定义是否循环交替反向播放动画。

normal:默认值。动画按正常播放。

reverse:动画反向播放。

alternate:动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。

alternate-reverse:动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。

initial:设置该属性为它的默认值。请参阅 initial。

inherit:从父元素继承该属性。请参阅 inherit。

animation-duration

属性定义动画完成一个周期需要多少秒或毫秒。

time:指定动画播放完成花费的时间。默认值为 0,意味着没有动画效果。

animation-fill-mode

属性规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

none:默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。

forwards:在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。

backwards:动画将应用在 animation-delay:定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 "normal" 或 "alternate" 时)或 to 关键帧中的值(当 animation-direction 为 "reverse" 或 "alternate-reverse" 时)。

both:动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。

initial:设置该属性为它的默认值。请参阅 initial。

inherit:从父元素继承该属性。请参阅 inherit。

animation-name

属性为 @keyframes 动画指定名称。

keyframename:指定要绑定到选择器的关键帧的名称

none:指定有没有动画(可用于覆盖从级联的动画)

animation-play-state

属性指定动画是否正在运行或已暂停。

paused:指定暂停动画。

running:指定正在运行的动画。

animation-timing-function

指定动画将如何完成一个周期。

linear:动画从头到尾的速度是相同的。

ease:默认。动画以低速开始,然后加快,在结束前变慢。

ease-in:动画以低速开始。

ease-out:动画以低速结束。

ease-in-out:动画以低速开始和结束。

steps(int,start|end):指定了时间函数中的间隔数量(步长)。有两个参数,第一个参数指定函数的间隔数,该参数是一个正整数(大于 0)。 第二个参数是可选的,表示动画是从时间段的开头连续还是末尾连续。含义分别如下:

start:表示直接开始。

end:默认值,表示戛然而止。

cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

讲解代码

讲解代码放到了在线预览平台


讲解代码操作步骤

演示代码都可通过代码复制拷贝到本地的IDE中进行演示。也可以自己照着敲击学习。

第一步:选中一个想查看代码的功能项;

第二步:将查看的功能的代码进行复制;

第三步:将代码粘贴到一个空档html文档中;

第四步:运行这个新建的html文档,刚才的顶部模块功能就出来啦。

一个小习题

表格在网页中是很常见的一种展示数据的方式。默认的表格是没有颜色等样式的。

下图中的高亮的表头、隔行高亮的效果是如何实现的呢?解答方案会在下篇文章中给出。

总结

如果说transform的旋转跳跃间,可以实现各式各样好玩的展示效果。那么animation属性则是为或是静态或是立体的效果,注入力量,注入可以去跑去跳去漂亮的倒挂金钩的力量。希望未来创造更多的好玩的动画效果。

有时候学习并不困难,如何应用是关键,所以,想要熟练的掌握前端知识,还需要不断的练习和应用。

前端的千变万化,源于对前端知识的融会贯通。

目录
相关文章
|
6天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
6天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
6天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。
|
6天前
|
移动开发 前端开发 UED
【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
【4月更文挑战第30天】前端开发中的渐进式增强和优雅降级是确保跨浏览器、跨设备良好用户体验的关键策略。渐进式增强是从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版本出发,向下兼容,确保低版本浏览器仍能使用基本功能。实践中,遵循HTML5/CSS3规范,使用流式布局和响应式设计,检测浏览器特性,并提供备选方案,都是实现这两种策略的有效方法。选择合适策略优化网站,提升用户体验。
|
6天前
|
前端开发 开发者 UED
【专栏:HTML与CSS前端技术趋势篇】网页设计中的CSS Grid与Flexbox之争
【4月更文挑战第30天】本文对比了CSS Grid和Flexbox两种布局工具。Flexbox擅长一维布局,简单易用,适合导航栏和列表;CSS Grid则适用于二维布局,能创建复杂结构,适用于整个页面布局。两者各有优势,在响应式设计中都占有一席之地。随着Web标准发展,它们的结合使用将成为趋势,开发者需掌握两者以应对多样化需求。
|
6天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
8天前
|
XML 前端开发 JavaScript
前端CSS样式零基础教学总结,UI、前端开发都适用
前端CSS样式零基础教学总结,UI、前端开发都适用
|
8天前
|
前端开发 开发者
【Web 前端】CSS 样式覆盖规则?
【4月更文挑战第22天】【Web 前端】CSS 样式覆盖规则?
|
8天前
|
前端开发 容器
【Web 前端】css选择器有哪些?
【4月更文挑战第22天】【Web 前端】css选择器有哪些?
|
8天前
|
编解码 前端开发 开发者
【Web 前端】CSS常用尺寸单位有哪些?应用场景?
【4月更文挑战第22天】【Web 前端】CSS常用尺寸单位有哪些?应用场景?