canvas绘图实现浏览器等待效果
一:创建画布
<canvas width="600" height="600" id="canvas" style="border:1px solid red;"></canvas>
<input type="button" id="start" value="start">
<input type="button" id="stop" value="stop">
二:代码实现
(function(window){
var timer;
var iStop = true;
var degree = 0;
var cxt = null;
var _x = 0;
var _y = 0;
var fillStyles = [
'rgba(255, 0, 0, 1)',
'rgba(255, 0, 0, 0.6)',
'rgba(255, 0, 0, 0.3)',
'rgba(255, 0, 0, 0.1)',
'rgba(0, 0, 255, 1)',
'rgba(0, 0, 255, 0.6)',
'rgba(0, 0, 255, 0.3)',
'rgba(0, 0, 255, 0.1)'
];
function draw() {
for(var i=0; i<8; i++){
cxt.save();
cxt.beginPath();
cxt.translate(_x, _y);
cxt.rotate(-degree*Math.PI/180);
cxt.moveTo(0, 0);
cxt.fillStyle = fillStyles[i];
cxt.arc(0, 0, 100, i*45*Math.PI/180, (i+1)*45*Math.PI/180, false);
cxt.closePath();
cxt.fill();
cxt.restore();
if(degree++ == 360){
degree = 0;
}
}
cxt.save();
cxt.beginPath();
cxt.fillStyle = 'white';
cxt.arc(_x, _y, 60, 0, 360*Math.PI/180, false);
cxt.closePath();
cxt.fill();
cxt.restore();
}
function erase() {
cxt.clearRect(0, 0, canvas.width, canvas.height)
}
function animate() {
erase();
draw();
if(iStop){
cancelRequestAnimationFrame(timer);
}else{
timer = requestAnimationFrame(animate);
}
}
window.Ykload = function(canvas){
cxt = canvas.getContext('2d');
_x = canvas.width/2;
_y = canvas.height/2;
};
window.Ykload.prototype.start = function(){
if(iStop == true) {
iStop = false;
animate();
}
};
window.Ykload.prototype.end = function(){
iStop = true;
};
})(window);
var canvas = document.getElementById('canvas');
var ykload = new Ykload(canvas);
document.getElementById('start').onclick = function(){
ykload.start();
};
document.getElementById('stop').onclick = function(){
ykload.end();
};
canvas绘图实现浏览器等待效果的更多相关文章
- >炫酷的计时器效果Canvas绘图与动画<
>炫丽的计时器效果Canvas绘图与动画< 虽然我是学习java的,但是因为最近使用html5的关系,多学习了一下前端知识. 现在,我要介绍的计时器是十分炫酷的,使用画布完成. 喜欢htm ...
- Canvas绘图之平移translate、旋转rotate、缩放scale
画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- 伙伴们休息啦canvas绘图夜空小屋
HTML5 canvas绘图夜空小屋 伙伴们园友们,夜深了,休息啦,好人好梦... 查看效果:http://hovertree.com/texiao/html5/28/ 效果图如下: 代码如下: &l ...
- javascript的canvas绘图的基本用法
<canvas>是HTML里面非常强大的元素,利用它结合js可以实现很多动画效果,大大增强交互性.下面,我想用图文并茂的方式阐述一下canvas的绘图机制的基础内容,话不多说,先上代码: ...
- canvas绘图、WebGL、SVG
目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- Canvas绘图基础(一)
简单图形绘制 矩形:描边与填充 Canvas的API提供了三个方法,分别用于矩形的清除.描边及填充 clearRect(double x, double y, double w, double h) ...
- HTML5在canvas中绘制复杂形状附效果截图
HTML5在canvas中绘制复杂形状附效果截图 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径. beginPath() : 开始绘制一个新路 ...
随机推荐
- 利用反射绑定事件处理程序(C#)
利用反射绑定事件处理程序(C#) 传统的写法:强类型的情况下 using System;using System.Collections.Generic;using System.Text; usin ...
- 完整性约束&外键变种三种关系&数据的增删改
完整性约束 本节重点: not null 与 default unique primary auto_increment foreign key 一.介绍 约束条件与数据类型的宽度一样,都是可选参数 ...
- Jasperreport5.6.9-----2
Jasperreport5.6.0生成PDF 上一篇讲的是jasperreport5.6.0生成pdf,运行后可以生成pdf,可是和我们的需求有点差距,我们是要求生成后,可以直接打开或保存,这就需 ...
- linux同步机制
很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下<linux内核标准教程>和<深入linux设备驱动程序内核机制>这两本 ...
- [LeetCode_98]Validate Binary Search Tree
题目链接 https://leetcode.com/problems/validate-binary-search-tree/ 题意 判断给定树是否是BST 思路 根据定义判断.递归. 代码 clas ...
- how2j网站前端项目——天猫前端(第一次)学习笔记2
今天早上开始首页内容.首页除了公共页面,还有许多自己的内容:导航和轮播.分类菜单.推荐产品展示,最后还有js的互动. 一.导航和轮播的学习 在自己做图片的轮播时,还是没有一次成功.存在了好几处问题: ...
- 文件操作 day8
一,文件操作基本流程. 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...
- 关于控制反转(IOC)容器 ,依赖注入(DI)模式必读文章收集
推荐一篇国外設計大師Martin Fowler的大作:Inversion of Control Containers and the Dependency Injection pattern http ...
- python loggin
一 日志级别 CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 ...
- 点评10款Github上最火爆的国产开源项目
衡量一个开源产品好不好,看看产品在Github的Star数量就知道了.由此可见,Github已经沦落为开源产品的“大众点评”了. 一个开源产品希望快速的被开发者知道.快速的获取反馈,放到Github上 ...