文档章节

给 Web 开发人员推荐的开源图形库 —— 动画

编辑部的故事
 编辑部的故事
发布于 2017/07/13 16:51
字数 1623
阅读 2W
收藏 667

现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高,数据可视化、动画交互、2D/3D 等元素已然成为标配。

以下是为 Web 开发者推荐的一些精品开源图形库,旨在专注于最常见的问题和最常用的东西。将针对动画(Animation)、数据可视化(Data Visualization)、2D/3D 分别整理,欢迎保持关注。

给 Web 开发人员推荐的开源图形库 —— 2D/3D

给 Web 开发人员推荐的开源图形库 —— 数据可视化

动画

一、效果(Effects)

1、切换和过渡

Animate.css

一个跨浏览器的 css3 动画库,内置了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)、放大缩小(等多达 60 多种动画效果,几乎包含了所有常见的动画效果。在炫酷的同时,还一直保持着易于使用的特点。

效果预览:点此查看

Magic Animations

一个独特的 CSS3 动画特效包,可以自由地使用在 Web 项目中。包括:Magic Effects、Bling、Static Effects、Static Effects Out、Perspective、Rotate、Slide、Math、Tin、Bomb 等各类效果。

效果预览:点此查看

Effeckt.css

同样是一个包含众多精妙的 CSS3 切换和动画效果库,例如:弹窗、按钮、导航、列表、页面切换等,适用于网站和移动 Web 开发。

效果预览:点此查看

还有:

Velocity.js:一个简单易用、高性能、功能丰富的轻量级动画库。它能和 jQuery 完美协作,并和 $.animate() 有相同的 API, 但它不依赖 jQuery,可单独使用。 Velocity 不仅包含了 $.animate() 的全部功能, 还有变换、循环、缩放等特色功能。

Anime.js:可以和 CSS3 属性、SVG、DOM 元素和 JS 对象一起工作,制作出各种高性能,平滑过渡的动画效果。

数量太多,不一一列举。

2、悬停

Hover

一款基于 CSS3 的悬停特效合集,可以轻松的被应用到链接、按钮、LOGO、SVG 以及图片等元素和修饰上。可用于 CSS、Sass 和 LESS 。

效果预览:点此查看

3、图标

Transformicons

一个结合 SVG、CSS 和 HTML 技术,让图标、按钮和符号具有变种(特殊)动画效果的库。它几乎可完成开发所需的任意动画效果,还提供了一些可选参数方便对效果进行自定义。

4、加载

Loaders.css

一款追求性能和体验感的加载动画合集,利用纯 CSS 实现多种样式的 Loading 加载动画。这些动画并不需要图片来辅助,以避免昂贵的绘画和布局成本,同时也对运行效率有所保证。

SpinKit

同样是一款  CSS 加载动画合集,可高度自定义动画效果,并且提供多个参数可供选择,运行性能流畅。

类似的 spin.js 也不错,压缩后仅 1.9K,在此不多赘述。

5、行为速度(Easing)

d3-ease

这是一个让动画更为平滑的 Easing 库。Easing 是一种通过调整时间映射来控制动画中的行为的方法。它最常用于缓慢进退,让动画转换更为平滑,行为更加合理。

6、滚动

ScrollReveal

一款页面滚动显示动画,可以播放一次也可以播放无限次,能让页面更加有趣,更吸引用户眼球。

ScrollMagic

一个用来创建魔幻滚动交互的 JavaScript 库,可以像使用进度条一样使用滚动条。支持在特定的滚动位置开始一个动画,并且让动画同步滚动条的动作,和把元素粘在一个特定的滚动位置。当用户到达某个滚动位置时,可以调用函数,或以任何其他方式来和当前的滚动位置进行交互。

7、视差

Parallax

一款简单,轻量级的视差效果生成器,可以对智能设备点击运动的方向作出反应,不需要任何识别方向,检测位置的设备,只需要游标(鼠标运动的方向等)的方向。

效果预览:点此查看

RELLAX

同样是一款主打轻量级的纯 JavaScript 视差效果库,但和 Parallax 的游标视觉差不同的是,它倾向于滚动视觉差。RELLAX 压缩后的版本仅 1021 个字节,在手机等小屏幕设备中,插件会自动限制视觉差特性。

8、翻转(Flip)

React FLIP Move

一个翻转移动的库,旨在解决当列表的顺序发生变化时,项目列表动画化的问题。DOM 节点实际上不能重新排序,创建新的节点,因此简单的 CSS 转换不起作用。react-flip-move 利用 FLIP 技术来计算出这样的转换将是什么样的,并使用硬件加速 CSS 转换。

效果预览:点此查看

从阿里的  Ant Design 中提炼出来的动效语言 Ant Motion ,也能实现类似的效果。它同时也是一套 React 框架动效解决方案,提供了单项、组合动画,以及整套解决方案。

9、数值

CountUp.js

一个无依赖关系的轻量级 JavaScript 类,可以用来快速创建以一种更有趣的动画方式显示数值数据。尽管它的名字叫 countUp,但其实可以在两个方向进行变化,取决于传递的 startVal 和 endVal 参数判断。

10、关键帧/时间轴

Dynamics.js

一款可以创建物理运动动画效果 JavaScript 库,只需把它引入页面,即可激活任意 DOM 元素的 CSS 属性动画,也可结合 SVG 使用。

React-Motion

一个值得推荐的物理动画库, 使动画看起来像一个弹簧那样,配置合适的劲度系数和空气阻力后,可以使网站增添一些俏皮的元素,让用户体验起来更加舒畅。

11、轨迹/曲线

Mojs

一个拥有极简的声明式 API ,能够轻松掌控运动轨迹,为运动图形而生的工具库,允许模块化需求定制,有良好的动画效果和用户体验。

Vivus

一个无依赖的轻量级 Javascript 库,可以绘制 SVG 图形的外观,执行 SVG 路径动画。它有各种不同的动画效果可用,允许创建一个自定义脚本来绘制 SVG 。

© 著作权归作者所有

编辑部的故事

编辑部的故事

粉丝 1587
博文 271
码字总数 536061
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(9)

Loveni
Loveni
这个可以mark一下
马丁的早晨
马丁的早晨
收藏
锗锣
锗锣
mark
RafaelShin
RafaelShin
必须收藏的好文章
wappleat
wappleat
🔥
SimonYe
SimonYe
我喜欢动图~~
Heanes
Heanes
这个可以mark
开源中国首席罗纳尔多
开源中国首席罗纳尔多
有没有google材质 设计 的相关css
让你成为灵魂画手的 JS 引擎:Zdog

本文作者:HelloGitHub-kalifun 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 今天给大家推荐一个使用 JavaScript 语言编写的开源 Web 3D 模型项目 —— Zdog。 一、介绍 1.1 Zd...

HelloGitHub
2019/09/18
0
0
个人分享--web前端学习资源分享

1.前言 时间过得真快,转眼间现在是2017年最后一个星期,而今天也是圣诞节,过几天也是元旦了。每到年底,大家都习惯总结和分享,我也不例外。但是经历,我之前已经发过了,那么我今天就分享...

2017/12/25
0
0
Web 开发中的矢量绘图处理和应用

矢量绘图一直是 Web 开发中一直比较薄弱的环节。本文首先针对不同浏览器详细阐述不同的矢量绘图解决方案,其中包括 HTML5 Canvas、SVG 以及 VML 等技术;之后针对每种不同的技术介绍其实现和...

IBMdW
2011/09/03
2.3K
0
Web开发中的矢量绘图(vml,svg)处理和应用

前言 1991 年物理学家 Tim Berners-Lee 首次在因特网上发布了 HTML 的第一版描述规范文档。经过了 20 多年的发展,HTML 语言成为如今编程最为广泛的语言和互联网上采用最广的文档格式。虽然 ...

kevin_pang
2014/02/25
514
0
android开发案例

20 多个可以提高你安卓开发技能的开源 app 学习的最佳方式就是阅读,对程序员来说也是如此。如果你想成为一个更优秀的程序员,你必须阅读更多的代码,就是这么简单。书籍,博客,论坛在某种程...

掘金官方
2017/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

嵌套滑动通用解决方案--NestedScrollingParent2

文章目录 一、问题及解决方案 二、NestedScrollingParent2LayoutImpl3的实现原理 2.1 先来回顾下嵌套滑动机制。 2.2 再来看看NestedScrollView嵌套RecyclerView 2.3 NestedScrollingParent2...

osc_mgvk29y5
22分钟前
12
0
概率分布

二项分布 # 1次试验中,成功的次数np.random.binomial(1, 0.5)# 1000次试验中,成功的次数print('1000次试验中,成功的次数: ', np.random.binomial(1000, 0.5))# 1000次试验中,...

JosiahMg
22分钟前
19
0
学军信友队趣味网络邀请赛 b题 齐心抗疫(树的直径)

题目描述 对于所有数据,满足2<=n<=50000,1<=a[i]<=1000。 题目思路 前言 本来我以为是最短路什么的。。。结果是我太菜,个人认为此题还是补充了自己知识,学到了不少 知识 树的直径表示最长...

osc_uj3h5gt9
22分钟前
12
0
安卓svc命令使用总结

使用环境: 在无屏幕状态下想要控制Wi-Fi、电源、数据流量、usb、nfc。 命令简介: 通过adb shell 进入交互页面,输入svc显示下图说明 下面就每个命令做相应的使用说明: 1、power 在shell环...

osc_zitca8hu
24分钟前
28
0
切换页面取消请求

在axios的封装文件中添加 import axios from 'axios'let router = import("@/router");let source = axios.CancelToken.source();const baseURL = process.env.VUE_APP_MODE == 'develo......

osc_3ytpwpyb
25分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部