• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > canvas之万花筒效果的简单实现(推荐)

canvas之万花筒效果的简单实现(推荐)

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含canvas,万花筒等相关知识,佚名 希望在学习及工作中可以帮助到您

canvas也有css3里transform的变换功能,transform的底层运算的方式是运用了线性代数里矩阵,而矩阵是在我们的生活实践中会经常被使用,它可以把复杂的空间问题呈现出来,它还有很多实践的地方,然后不懂它的人会觉得很难,如果要钻研,这方面知识是不能少的。

canvas里封装好的变换函数:scale()、rotate()、translate()、transform()、setTransform();而它们只要传数字进去即可,单位不用传,还有这里角度单位是弧度,这些是与css里的区别,transform()、setTransform();在与这个变换都有个记忆保存叠加的功能,而setTransform()帮

你消除这些功能了,换句话说,setTransform() 允许您缩放、旋转、移动并倾斜当前的环境。

至于使用方式到w3c里查手册。

接下来效果图:

代码:

  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>canvas</title>  
  6.     <style>  
  7.     body{   
  8.         background: #eee;   
  9.     }   
  10.     canvas{   
  11.         background: #fff;   
  12.     }   
  13.     </style>  
  14. </head>  
  15. <body>  
  16.     <canvas width="800" height="800"></canvas>  
  17.     <script>  
  18.     var oCas=document.getElementsByTagName("canvas")[0];   
  19.     var cas=oCas.getContext("2d");   
  20.     var arr=[];   
  21.   
  22.     /*绘制数据内容*/   
  23.     setInterval(function(){   
  24.         cas.clearRect(0,0,800,800);   
  25.         for(var i=0;i<arr.length;i++){   
  26.             cas.save();   
  27.             cas.beginPath();   
  28.             cas.translate(400,400);   
  29.             cas.rotate(arr[i].num*Math.PI/180);   
  30.             cas.scale(arr[i].num2,arr[i].num2);   
  31.             cas.fillStyle=arr[i].color;   
  32.             cas.rect(arr[i].num1,0,20,20);   
  33.             cas.fill();   
  34.             cas.restore();   
  35.             if(arr[i].num1<=0){   
  36.                 arr.splice(i,1);   
  37.             }else{   
  38.                 arr[i].num++;   
  39.                 arr[i].num2-=0.0015;   
  40.                 arr[i].num1-=0.4;   
  41.             }   

您可能想查找下面的文章:

  • HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
  • canvas之万花筒效果的简单实现(推荐)

相关文章

  • 2017-08-06纯css实现鼠标滑过弹出层效果
  • 2017-08-06css 背景样式属性说明
  • 2017-08-06css3 position fixed固定居中问题解决方案
  • 2017-08-06详细了解CSS中的class与id区别及用法
  • 2017-08-06负边距创建自适应宽度的流体布局的实现方法
  • 2017-08-06img 标签下多余空白的解决方法
  • 2017-08-06css 垂直居中的几种实现方法
  • 2017-08-06css重置浏览器字体大小示例分享
  • 2017-08-06span 右浮动折行 解决ie6/7中span右浮动折行问题
  • 2017-08-06让IE支持CSS3的不完全兼容方案

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • CSS line-height行高上下居中垂直居中样式属性
    • 设置DIV最小高度以及高度自适应随着内容的变化而变化
    • CSS设置DIV Herf底层图片和链接同时改变(兼容多浏览器)
    • 纯css3实现的鼠标悬停动画按钮
    • 有利于SEO优化的DIV+CSS的命名规则小结
    • ie6中li插入图片后下方有空隙(经典bug)多种解决方法
    • CSS3 border-image详解、应用及jQuery插件
    • CSS写的简单表格示例
    • 用CSS中的map标签制作单图多区域点击的示例
    • css实现的漂亮的分页效果代码(橘黄色与蓝色)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有