two.js之实现动画效果示例


Posted in Javascript onNovember 06, 2017

一、什么是two.js?

Two.js 是面向现代 Web 浏览器的一个二维绘图 API。Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁。

Two.js 有一个内置的动画循环,可搭配其他动画库。Two.js 包含可伸缩矢量图形解释器,这意味着开发人员和设计人员都可以在商业应用中,如 Adobe Illustrator 中创建 SVG 元素,并把它引入 Two.js 使用场景中。

二、导入two.js

two.js之实现动画效果示例

三、用two.js实现动画

1)一个简单的小dome

<script type="text/javascript">
 //在整个body中绘制绘图区
 var two = new Two({
  fullscreen:true,//设置是否全屏
  autostart:true,//是否自动启动动画 
 }).appendTo(document.body);
   
 var star = two.makeStar(two.width/2,two.height/2,50,125);
 //two.update();//映射到页面上
 two.bind('update',function(frameCount){
  star.rotation +=0.03;
 })
   
</script>

two.js之实现动画效果示例

2)实现一个比较复杂一些的

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   svg{
    background-color: black;
   }
  </style>
  <script src="js/two.JS.js" type="text/javascript" charset="utf-8"></script>
 </head>
 <body>
  <!--创建div绘图区-->
  <div id="draw-shapes">
   
  </div>
  <script type="text/javascript">
   var elem = document.getElementById("draw-shapes");
   var params = {width:400,height:400};
   var two = new Two(params).appendTo(elem);
   var circle = two.makeCircle(-72,0,50);//前两个是x轴y轴,然后是圆的半径
   var star = two.makeStar(75,0,75,35,5);
//   var ss = two.makeCurve(250,30,46,50,465,48,79,36,94);
   
   circle.fill = "#ccd0d5";//填充颜色
   circle.lineWidth = 15;//边线的宽度
   circle.stroke = "#FED519";//边线的颜色
   
   star.fill = "yellow";
   star.opacity = 0.5;//设置透明度
   circle.noStroke();//去掉边线
   
   var group = two.makeGroup(circle,star);//将两个图形合并到一个组中
//   group.fill = "#ffffff";
   
   group.translation.set(two.width/2,two.height/2);
   group.rotation = Math.PI;
   group.scale = 0.1;
   
   two.update();
   
   two.bind('update',function(frameCount){
    if(group.scale>0.99999){
     //将缩放与旋转的度数变成0
     group.scale = group.rotation = 0;
    }
    var t = (1- group.scale) * 0.3;
    group.scale +=t;
    group.rotation +=t *3*Math.PI;
   }).play();
  </script>
 </body>
</html>

two.js之实现动画效果示例

其中的背景是这个函数makeCurve会改变为什么样的背景取决于所给的数是多大以及多少个

 四、two.js官网链接

https://two.js.org/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript var变量隐式声明方法
Oct 19 Javascript
js对象与打印对象分析比较
Apr 23 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 26 Javascript
JS实现图片放大镜插件详解
Nov 06 #Javascript
js定时器实现倒计时效果
Nov 05 #Javascript
Vuejs实现购物车功能
Nov 05 #Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 #Javascript
vue+node+webpack环境搭建教程
Nov 05 #Javascript
JavaScript实现三级级联特效
Nov 05 #Javascript
angular中不同的组件间传值与通信的方法
Nov 04 #Javascript
You might like
php数据库密码的找回的步骤
2011/01/12 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
Python如何读取、写入JSON数据
2020/07/28 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
出纳工作岗位责任制
2014/02/02 职场文书
本科应届生自荐信
2014/06/29 职场文书
公司承诺函范文
2015/01/21 职场文书
转让协议书
2015/01/27 职场文书
主持人大赛开场白
2015/05/29 职场文书
windows安装python超详细图文教程
2021/05/21 Python
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server