使用html5制作loading图的示例


Posted in HTML / CSS onApril 14, 2014

复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id = "canvas"></canvas></p> <p> <script>
var Loading = function (canvas, options) {
this.canvas = document.getElementById(canvas);
this.options = options;
};</p> <p> Loading.prototype = {
constructor: Loading,
show: function () {
var canvas = this.canvas,
begin = this.options.begin,
old = this.options.old,
lineWidth = this.options.lineWidth,
canvasCenter = {x: canvas.width / 2, y: canvas.height / 2},
ctx = canvas.getContext("2d"),
color = this.options.color,
num = this.options.num,
angle = 0,
lineCap = this.options.lineCap,
CONST_PI = Math.PI * (360 / num) / 180;
window.timer = setInterval(function () {
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < num; i += 1) {
ctx.beginPath();
ctx.strokeStyle = color[num - 1 - i];
ctx.lineWidth = lineWidth;
ctx.lineCap= lineCap;
ctx.moveTo(canvasCenter.x + Math.cos(CONST_PI * i + angle) * begin, canvasCenter.y + Math.sin(CONST_PI * i + angle) * begin);
ctx.lineTo(canvasCenter.x + Math.cos(CONST_PI * i + angle) * old, canvasCenter.y + Math.sin(CONST_PI * i + angle) * old);
ctx.stroke();
ctx.closePath();
}
angle += CONST_PI;
console.log(angle)
},50);
},
hide: function () {
clearInterval(window.timer);
}
};</p> <p> (function () {
var options = {
num : 8,
begin: 20,
old: 40,
lineWidth: 10,
lineCap: "round",
color: ["rgb(0, 0, 0)", "rgb(20, 20, 20)","rgb(40, 40, 40)", "rgb(60, 60, 60)","rgb(80, 80, 80)", "rgb(100, 100, 100)", "rgb(120, 120, 120)", "rgb(140, 140, 140)"]
};
var loading = new Loading("canvas", options);
loading.show();
}());
</script>
</body>
</html>

效果图:

使用html5制作loading图的示例

HTML / CSS 相关文章推荐
css动画效果之animation的常用样式
Mar 09 HTML / CSS
css3 实现元素弧线运动的示例代码
Apr 24 HTML / CSS
CSS3实现时间轴特效
Nov 02 HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
Jun 25 HTML / CSS
详解HTML5中download属性的应用
Aug 06 HTML / CSS
HTML5实现预览本地图片
Feb 17 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
May 23 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
Apr 09 HTML / CSS
关于flex 上下文中自动 margin的问题(完整例子)
May 20 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 HTML / CSS
如何解决flex文本溢出问题小结
Jul 15 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 #HTML / CSS
html5图片上传预览示例分享
Apr 14 #HTML / CSS
HTML5 Canvas锯齿图代码实例
Apr 10 #HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
Apr 10 #HTML / CSS
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
Apr 10 #HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
Apr 10 #HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
Apr 08 #HTML / CSS
You might like
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python模块导入的细节详解
2018/12/10 Python
通过实例解析Python return运行原理
2020/03/04 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
python实现五子棋程序
2020/04/24 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
中国梦演讲稿教师篇
2014/04/23 职场文书
Python中else的三种使用场景
2021/06/16 Python
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby