最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScriptcanvas实现旋转动画

来源:动视网 责编:小OO 时间:2020-11-27 20:05:37
文档

JavaScriptcanvas实现旋转动画

使用canvas的convas来实现围绕旋转动画,外圈顺时针,里层逆时针。代码demo链接地址:代码demo链接地址。html文件。<;,width: width,height: height});//创建层var layer = new Konva.Layer();//创建组1var group = new Konva.Group({x: stage.width() / 2,y: stage.height() / 2,});//最外层圆var circle1 = new Konva.Circle({x: 0,y: 0,radius: 250,stroke: ";#ccc";,strokeWidth: 1,y: 0,radius: 150,y: 0,y: 0。
推荐度:
导读使用canvas的convas来实现围绕旋转动画,外圈顺时针,里层逆时针。代码demo链接地址:代码demo链接地址。html文件。<;,width: width,height: height});//创建层var layer = new Konva.Layer();//创建组1var group = new Konva.Group({x: stage.width() / 2,y: stage.height() / 2,});//最外层圆var circle1 = new Konva.Circle({x: 0,y: 0,radius: 250,stroke: ";#ccc";,strokeWidth: 1,y: 0,radius: 150,y: 0,y: 0。
 本文主要为大家详细介绍了JavaScript canvas实现围绕旋转动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

使用canvas的convas来实现围绕旋转动画,外圈顺时针,里层逆时针

代码demo链接地址:代码demo链接地址

html文件

<!DOCTYPE html> 
<html> 
<head lang="en"> 
 <meta charset="UTF-8"> 
 <title></title> 
 <style> 
 body { 
 margin: 0; 
 padding: 0; 
 overflow: hidden; 
 background-color: #f0f0f0; 
 } 
 </style> 
 <script src="js/konva.js"></script> 
 <script src="js/circle.js"></script> 
</head> 
<body> 
<p id="cas"></p> 
 
<script> 
 var width = window.innerWidth; 
 var height = window.innerHeight; 
 //创建舞台 
 var stage = new Konva.Stage({ 
 container: "cas", 
 width: width, 
 height: height 
 }); 
 //创建层 
 var layer = new Konva.Layer(); 
 //创建组1 
 var group = new Konva.Group({ 
 x: stage.width() / 2, 
 y: stage.height() / 2, 
 }); 
 //最外层圆 
 var circle1 = new Konva.Circle({ 
 x: 0, 
 y: 0, 
 radius: 250, 
 stroke: "#ccc", 
 strokeWidth: 1, 
 dash: [6, 3] 
 }); 
 group.add(circle1); 
 //第二个圆 
 var circle2 = new Konva.Circle({ 
 x: 0, 
 y: 0, 
 radius: 150, 
 stroke: "#ccc", 
 strokeWidth: 1, 
 dash: [6, 3] 
 }); 
 group.add(circle2); 
 //第三个圆 
 var circle3 = new Konva.Circle({ 
 x: 0, 
 y: 0, 
 radius: 135, 
 stroke: "blue", 
 strokeWidth: 2, 
 dash: [10, 5] 
 }); 
 group.add(circle3); 
 //第四个圆 
 var circle4 = new Konva.Circle({ 
 x: 0, 
 y: 0, 
 radius: 105, 
 fill: "#ccc", 
 opacity: 0.4 
 }); 
 group.add(circle4); 
 //第五个圆 
 var circle5 = new Konva.Circle({ 
 x: 0, 
 y: 0, 
 radius: 80, 
 fill: "#74A2F0" 
 
 }); 
 group.add(circle5); 
 //添加文字 
 var text = new Konva.Text({ 
 x: -80, 
 y: -12, 
 text: "WEB全栈", 
 fill: "white", 
 fontSize: 24, 
 width: 160, 
 align: "center" 
 }); 
 group.add(text); 
 layer.add(group); 
 //***************************************************** 
 //创建组2 
 var outGroup = new Konva.Group({ 
 x: stage.width() / 2, 
 y: stage.height() / 2, 
 }); 
 var arrColor = ["red", "green", "blue", "orange", "purple"]; 
 var arrText = ["web", "node.js", "ajax", "html5", "css"]; 
 for(var i = 0; i < 5; i++) { 
 var cir = new Circle({ 
 x : 250 * Math.cos(72 * i * Math.PI / 180), //圆心x轴的坐标 
 y : 250 * Math.sin(72 * i * Math.PI / 180), //圆心y轴的坐标 
 outR : 60, //外圆的半径 
 inR : 50, //内圆的半径 
 fill : arrColor[i], //填充颜色 
 text: arrText[i], //文字 
 outOpacity : 0.3, //外圆的透明度 
 inOpacity : 0.6 //内圆的透明度 
 }); 
 cir.drawCircle(outGroup); 
 } 
 layer.add(outGroup); 
 
 //*********************************************** 
 //创建组3 
 var inGroup = new Konva.Group({ 
 x: stage.width() / 2, 
 y: stage.height() / 2, 
 }); 
 var arrColor = ["red", "green", "blue", "orange", "purple"]; 
 var arrText = ["web", "node.js", "ajax", "html5", "css"]; 
 for(var i = 0; i < 5; i++) { 
 var cir = new Circle({ 
 x : 135 * Math.cos(90 * i * Math.PI / 180), //圆心x轴的坐标 
 y : 135 * Math.sin(90 * i * Math.PI / 180), //圆心y轴的坐标 
 outR : 45, //外圆的半径 
 inR : 35, //内圆的半径 
 fill : arrColor[i], //填充颜色 
 text: arrText[i], //文字 
 outOpacity : 0.3, //外圆的透明度 
 inOpacity : 0.6 //内圆的透明度 
 }); 
 cir.drawCircle(inGroup); 
 } 
 layer.add(inGroup); 
 
 //************************************************ 
 //运动动画 
 var step = 1; //转动的角度 
 var anim = new Konva.Animation(function() { 
 outGroup.rotate(step); 
 outGroup.getChildren().each(function (ele, index) { 
 ele.rotate(-step); 
 }); 
 inGroup.rotate(-step); 
 inGroup.getChildren().each(function (ele, index) { 
 ele.rotate(step); 
 }); 
 }, layer); 
 anim.start(); 
 stage.add(layer); 
 
 stage.on("mouseover", function () { 
 step = 0.3; 
 }); 
 stage.on("mouseout", function () { 
 step = 1; 
 }); 
</script> 
</body> 
</html>

js文件

效果图片:

文档

JavaScriptcanvas实现旋转动画

使用canvas的convas来实现围绕旋转动画,外圈顺时针,里层逆时针。代码demo链接地址:代码demo链接地址。html文件。<;,width: width,height: height});//创建层var layer = new Konva.Layer();//创建组1var group = new Konva.Group({x: stage.width() / 2,y: stage.height() / 2,});//最外层圆var circle1 = new Konva.Circle({x: 0,y: 0,radius: 250,stroke: ";#ccc";,strokeWidth: 1,y: 0,radius: 150,y: 0,y: 0。
推荐度:
标签: 旋转 动画 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top