百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

超实用可视化CSS3动画生成神器STYLIE

myzbx 2025-03-04 13:14 7 浏览

编者按:今天@不到布同学分享一款特别方便的神器,操作过程易学好懂,基本上可以解决现有所有的CSS动画需求,有具体的教程呦,赶紧给自己补上这课吧。

@不到布:自从CSS3引入了动画(transition和@keyframes,还有与之搭配的transform)之后,各路人马对它的热情都极为高涨,和JS动画相比,它写起来更简单(在没有jQuery库的情况下),同时在大多数情况下性能上也有很强的优势。transition和transform相对比较简单,除了矩阵变换(一般人也用不到)之外,别的都易学好懂,而使用了@keyframes的动画,简直就是设计师和工程师的大杀器,关于这东西有多杀,可以参考之前腾讯的大神们搞的一个CSS3动画帧数科学计算法(http://tid.tenpay.com)这样的玩意儿,内含计算器(http://tid.tenpay.com)一枚,内文之纠结复杂,我相信一般兼职半个前端的大设计或者初入行的小前端都是难以看懂的…

而且其实主要问题是,那玩意儿是为步进动画准备的,做一张精灵图,然后每隔一定时间跳一张…其实这样算不上一个真正的css动画,何况animation属性中的steps()功能可以比较好地解决这个问题。而一直以来,都没有一个好的css动画生成工具(别跟我提Muse,它需要阅读《工具的自我修养》…)所以今天我想推荐的就是这个Stylie(http://jeremyckahn),一个可视化自动生成CSS3动画的工具。

Stylie操作简介

页面打开以后很简单,蓝色的网格背景上面,两个绿色的十字中间连着一根黄色的线,上面有一个白色小球不断地从左边滑动到右边(还称不上滚动),下面有一个进度条,右边有一个操作面板。

图片来自Tuts+

Keyframes标签面板

  • 第一个0ms处表示起点相关信息,第二个2000ms处表示2000ms处断点的相关信息;

  • 2000ms可以单击修改它的时间,单击右上角的加号可以添加新的断点

  • X和Y分别表示横坐标及纵坐标(其实你也可以用鼠标去拖绿色的十字…);

  • S表示缩放倍率(默认是1);

  • rX、rY、rZ分别表示物体沿X、Y、Z轴的旋转角度(具体哪个轴是哪个可以在上面填写数字自己尝试,出于便于观察的理由建议填写180。当然你也可以按住Shift键,拖,但是我觉得这样很不好控制…);

  • linear表示线性的…这一栏是自定义缓动曲线(Easing curves)

缓动曲线

这个工具比较流弊刷刷的一点就在于它的缓动曲线功能,所有的数值,都!可!以!定义缓动。下面我稍微说一下它的缓动:

  1. In和Out分别代表进入时和结束时,缓动顾名思义就是有一个类似“缓冲”的动作,如同汽车加速是慢慢加起来的,人跑步也是慢慢停下的(急刹车也是很难从高速直接降速到静止的,总有个减速的过程)。

  2. Quad – x^2(二次方曲线)

  3. Cubic – x^3(三次方曲线)

  4. Quart – x^4(四次方曲线)

  5. Quint – x^5(五次方曲线)

  6. Sine – sin(x^(pi/2))(长相有点像二次方曲线,实际上这个函数很奇葩,有兴趣的童鞋可以移步这里(http://t.cn/RhdkXQC)看一下[0,3]的图像…)

  7. Expo – 2^(10(x-1))(我放弃起名字了,总之是一个开始非常非常慢,中后期非常非常快的东西)

  8. Circ – 顾名思义就是弧(1/4圆,如果选择了InOut就是两个外切的1/4圆)

  9. Bounce – 公式太长不写了,就是个反弹曲线(弹簧效果、小球落地)

    v10. Back -反弹曲线

  10. elastic – 橡皮筋曲线(有一个非常短暂且巨大的晃动,然后缓缓结束)

  11. swing – 跟Back系列一样

  12. 后面的就没什么了,最后一个为CustomEasing,这个曲线可以自己在Motion选项卡中编辑,经常用AI的童鞋可能比较容易编辑,但是不理解曲线跟运动速度之间的关系的话,就根本搞不懂自己在编辑什么…

上面说了那么多曲线…它其实代表的就是一个速率的变化(可以把起点和终点放在非水平或垂直的同一条直线位置上,然后改变X和Y的Easing Curves,本质上它和我们初高中物理课上画的那些撞车线抛物线没什么不同…)。对于那些想预览简单微小动效的人来说,可以把起点和终点放在比较近的位置上,然后改变Easing curves察看效果。

导出代码

效果满意之后,就可以点击CSS和HTML标签分别复制代码了。

CSS标签中可以为这个动画自定义名字,并选择浏览器兼容性(默认为W3C,如果你家要考虑兼容其实还不如不要做(对我说的就是那谁,你们懂)…兼容手机的话可以考虑勾上Webkit)。Orient generated CSS to的意思是说所有的位移数据采用相对(第一帧的)位移,还是绝对定位(相对于左上角)。最下面的滑块,最左边是最少代码,右边是最高质量,最小代码可能会在某些情况下引发意想不到的问题,但是通常情况下没啥事…

HTML标签就没啥东西了,你可以修改其中的html代码来查看你自定义的内容效果(默认只有一个图片,就是那个白色的圆…)

最后在右边的扳手标签里,你可以选择保存或读取你的动画。

差不多就是这样了,这个神器基本上可以解决现有所有的CSS动画需求,具体怎么做就看各人的实力(yun qi) 了。

相关推荐

炫酷的计时器效果Canvas绘图与动画

-----------------------------------------华丽的分割线-----------------------------------------------------...

康托尔集合的绘制及其Python绘制(康托尔集合论的概括原则是什么)

康托尔三分集(Cantorternaryset)是数学中一个著名的分形例子,由德国数学家格奥尔格·康托尔在1883年引入。它通过不断去掉线段的中间三分之一部分,重复这个过程得到的一个分形集合。康托...

一文带你搞懂JS实现压缩图片(js 压缩图片)

作者:wuwhs转发链接:https://segmentfault.com/a/1190000023486410前言公司的移动端业务需要在用户上传图片是由前端压缩图片大小,再上传到服务器,这样可以减...

数据可视化—Echarts图表应用(数据可视化图表类型)

ECharts是一款由百度前端技术部开发的,基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。使用JavaScript实现开源的可视化库,可以流畅的...

ThreeJS中三维世界坐标转换成二维屏幕坐标

Threejs全称是“Javascript3Dlibrary”。WebGL则是openGL在浏览器上的一个实现。Threejs对WebGL进行了封装,让前端开发人员在不需要掌握很多数学知识和绘图知...

鸿蒙开源第三方件组件——加载动画库

前言基于安卓平台的加载动画库AVLoadingIndicatorView(https://github.com/81813780/AVLoadingIndicatorView),实现了鸿蒙化迁移和重构...

canvas实现下雪背景图(canvas绘制背景图)

canvas下雪背景html+css+js实现:1.定义标签:<h1>北极光之夜。</h1><divclass="bg"></...

用canvas画简单的“我的世界”人物头像

前言:花了4天半终于看完了《HeadFirstHTML5》,这本书的学习给我最大的感受就是,自己知识的浅薄,还有非常多非常棒的技术在等着我呢。[熊本表情]扶朕起来,朕还能学!H5新增标签里面最喜欢...

Manim-基础图形之点(什么叫图形基点)

制作数学演示视频时需要用到各类的集合图形,manim中内置了一些列的图形,本篇就从最简单的点讲起。点作为manim中最简单图形,也是其他所有图形的基,所有图形的绘制都是靠点来定位。manim中的点主...

一起学 WebGL:坐标系(坐标系格式)

大家好,我是前端西瓜哥,今天我们来学习WebGL。WebGL的世界坐标系是三维的。默认使用笛卡尔坐标系的右手坐标系,满足右手定则,即x轴向右,y轴向上,z轴向着观察者,原点位于画布中心。然...

漫画 欣赏 - 聖鬥士星矢 THE.LOST.CANVAS 冥王神話 24

《圣斗士星矢THELOSTCANVAS冥王神话》改编自车田正美原作的漫画《圣斗士星矢》,由车田正美原作、手代木史织作画。其外传《圣斗士星矢THELOSTCANVAS冥王神话外传》则在《...

漫画 欣赏 - 聖鬥士星矢 THE.LOST.CANVAS 冥王神話 25 - 完结篇

《圣斗士星矢THELOSTCANVAS冥王神话》改编自车田正美原作的漫画《圣斗士星矢》,由车田正美原作、手代木史织作画。其外传《圣斗士星矢THELOSTCANVAS冥王神话外传》则在《...

Eric Fischl 名画录(eric tucker画家)

艾瑞克费舍尔(EricFischl,1948——),是美国新表现主义画家,当代国际画坛一位十分活跃的人物,在国际上享有很高的知名度。作为20世纪美国第6次经济衰退时期本土第一个伟大画家艾瑞克·费舍尔...

canvas绘画板的实现(canvas画布)

新项目有一个需求:客户需要在订单确认的时候签名。第一反应就是用html的canvas实现,同事一起商量了下,canvas有三个制约:canvas必须要用鼠标,签名会很难看;手机端webapp怎么实现...

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字一、项目功能利用Tkinter组件中的Canvas绘制图形和文字。二、项目分析要在窗体中绘制图形和文字,需先导入Tkinter组...