`
chennanfei
  • 浏览: 41682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Loading bar made in Canvas

 
阅读更多

 

<!DOCTYPE HTML>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="Amazon" /><meta name="description" content="Amazon.com" /><meta name="apple-touch-fullscreen" content="YES" />
    <meta name="viewport" content="format-detection=no,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,width=device-width" />
    <title>Happy shopping</title>
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <style>
        .bd-rd-sw {border-radius: 6px; box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);}
        .hidden {display: none;}  
        .loading {background-color: #DFDFDF; padding: 20px; position: fixed; left: 50%; top: 20%; z-index: 999;}  
        .overlay {background-color: #DFDFDF; height: 100%; opacity: 0.6; position: absolute; width:100%;}
    </style>
</head>  
<body> 
    <script type="text/javascript">
    var UI = (function() {
        function ProgressWidget(canvasId) {
            var CIRCLE_COUNT = 5;  
            var CIRCLE_OFFSET = 10;  
            var CIRCLE_RADIUS = 5;  
            var CIRCLE_LINE = 1;
            var COLOR_NORMAL = '#FFFFFF';
            var COLOR_SELECTED = '#5995BF';
            var DOUBLE_PI = Math.PI * 2;
            var INTERVAL_TIME = 300;
            var LINE_WIDTH = 1;
            var START_POINT = {x: 10, y: 15};
            
            // create DOM objects
            var front = $("#loading");  
            if (front.length == 0) {
                front = $("<div class='loading bd-sw hidden' id='loading'></div>");
                $("body").append(front);
            }
            
            var canvas = $("#progressCanvas");
            if (canvas.length == 0) {
                canvas = $("<canvas id='progressCanvas' width='150' height='30'></canvas>");
                front.append(canvas);
                
                var w = front.width() / 2;
                front.css('margin-left', -1 * w);
            }
            
            var _count = 0;
            var _drawContext = null;
            var _drawArea = document.getElementById('progressCanvas');
            if (_drawArea && _drawArea.getContext) { 
                _drawContext = _drawArea.getContext('2d');
            }
            var _task = null;
            
            function draw() {
                _drawContext.clearRect(0, 0, _drawArea.clientWidth, _drawArea.clientHeight);
                _drawContext.lineWidth = 1;
          
                var vx = START_POINT.x, vy = START_POINT.y;
                var radius = CIRCLE_RADIUS;
                var c = _count % CIRCLE_COUNT;
                  
                for (var j = 0; j < CIRCLE_COUNT; j++) {
                    _drawContext.fillStyle = j == c ? COLOR_SELECTED : COLOR_NORMAL;
          
                    _drawContext.beginPath();
                    _drawContext.arc(vx, vy, radius, 0, DOUBLE_PI, true);
                    _drawContext.fill();
                    _drawContext.closePath();
          
                    radius += 2;
                    vx += CIRCLE_OFFSET + radius * 2;
                }
                  
                _count++;
            }

            this.hide = function() {
                front.fadeOut();

                if (_task != null) {
                    clearInterval(_task);
                    _task == null;
                }
            };
            
            this.isRunning = function() {
                return front.is(':visible');
            };
            
            this.show = function(message) {
                if (_drawContext == null) {
                    return;
                }

                _task = setInterval(draw, INTERVAL_TIME);
                front.show();
            };            
        } // Object - ProgressWidget
          
        return {  
            'getLoadingWidget': function() { return new ProgressWidget(); }
        };  
    })();
   
      
    var loading = UI.getLoadingWidget();
    loading.show();
    </script>  
</body>  
</html>
分享到:
评论

相关推荐

    HTML5 Canvas 3D跳动Loading加载动画-可调节参数

    在这个特定的案例中,"HTML5 Canvas 3D跳动Loading加载动画-可调节参数"是一个利用Canvas API创建的3D加载动画,其特点是可以根据需求调整动画参数,提供更个性化的用户体验。 首先,我们需要了解HTML5 Canvas的...

    Canvas 发光loading动画

    总的来说,通过Canvas API,我们可以创建各种复杂的加载动画,发光loading动画只是其中之一。利用JavaScript的灵活性和Canvas的绘图能力,开发者可以构建出引人入胜的交互式用户体验。在实际项目中,可以根据需求...

    HTML5 Canvas实现发光Loading动画特效源码

    这是一款基于HTML5 Canvas实现的发光Loading加载动画特效源码。Loading旋转图标是在canvas画布上绘制的,整个loading动画是发光3D的视觉效果,相较于以往的loading动画特效,这款特效更显炫目华丽!

    Canvas实现超酷Loading动画源码.zip

    "Canvas实现超酷Loading动画源码"这个项目就是利用Canvas API来创建一种独特的加载动画。 首先,我们需要了解Canvas的基本概念。Canvas是一个基于矢量图形的画布,通过JavaScript代码控制,可以进行图像的绘制、...

    Canvas 发光loading动画.zip

    在本压缩包“Canvas 发光loading动画.zip”中,我们主要关注的是JavaScript(JS)的Canvas API应用,特别是在创建动态视觉效果方面的技巧。Canvas是HTML5的一个重要特性,它允许我们在网页上绘制图形,实现丰富的...

    Canvas制作圆形进度条Loading效果

    Canvas制作圆形进度条Loading效果

    Canvas圆形进度条Loading代码.zip

    "Canvas圆形进度条Loading代码.zip"这个压缩包包含了一种利用JavaScript和Canvas API实现的圆形进度加载动画。这种动画常用于网页加载过程中,提供用户反馈,展示数据加载的进度。 首先,我们要理解Canvas的基本...

    HTML5基于Canvas实现超酷Loading动画特效源码

    "HTML5基于Canvas实现超酷Loading动画特效源码"这一项目,就是利用Canvas的强大功能来创建一个吸引用户的加载动画。 Canvas是HTML5中的一个二维绘图上下文,通过JavaScript可以实现各种复杂的图形和动画。在这个...

    HTML5 Canvas网页发光圆形加载进度条Loading动画

    在本主题中,我们将深入探讨如何使用HTML5 Canvas来实现一个发光的圆形加载进度条(Loading动画)。 首先,我们需要理解Canvas的基本结构。在HTML文档中,我们通过`&lt;canvas&gt;`标签创建一个画布。例如: ```html ...

    HTML5 Canvas实现超酷Loading动画

    这次我们来看一款非常酷的Loading动画加载效果,和纯CSS3实现齿轮Loading加载动画类似,也是利用几何的特性来模拟的,它是一些类似旋转的动画效果。另外,关于Loading动画,我们也可以看看html5tricks上的Loading...

    HTML5 Canvas 液体流动样式Loading加载动画

    之前我们分享过很多基于jQuery和HTML5的Loading加载动画,比如这款HTML5 Canvas发光Loading动画就是基于Canvas的。今天我们要分享另外一款基于HTML5 Canvas的液体流动样式Loading加载动画,这款Loading动画在加载时...

    前端canvas例子,loading动画。加载动画

    内容概要:canvas案例,loading动画。加载动画。 实现技术:htm+js实现。双击浏览器打开即可看效果 能学到什么:canvas技术 适用人群: 前端canvas学习新手 阅读建议:支持canvas的浏览器

    Drawing Text in Canvas Using Javascript.zip

    "Drawing Text in Canvas Using Javascript.zip"这个压缩包很可能包含了一个教程或者示例代码,教导如何在Canvas画布上绘制文本。在本文中,我们将深入探讨JavaScript中的Canvas API,特别是如何利用它来绘制文字。 ...

    html5-canvas-shine-loading.rar_Shine!_loading

    Loading"中起到辅助作用,例如设置Canvas的样式、定位,或者通过CSS动画调整非Canvas元素的样式以配合加载效果。 在压缩包内的"html5-canvas-shine-loading"文件很可能是源代码,包括HTML文件(包含`&lt;canvas&gt;`元素...

    html2canvas最新版本git下载的

    包含的有:...当浏览器不支持Canvas时,将采用Flashcanvas或ExplorerCanvas技术代替实现。以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome, Opera新的版本, IE9以上的浏览器。

    ec-canvas 实现echart图表显示

    ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-canvas 实现echart图表显示ec-...

    html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片

    html2canvas是一款强大的JavaScript库,能够将HTML元素转换成Canvas图像。它不依赖于服务器端的渲染,完全在客户端完成,这对需要截图网页或网页元素的场景非常有用。html2canvas支持各种浏览器,包括Firefox 3.5+、...

    canvas实现遮罩效果

    这个效果不仅能够为网页增添视觉吸引力,而且展示了Canvas和CSS的强大结合。以下是对实现这一效果所需技术的详细解释。 首先,让我们了解什么是Canvas。Canvas是HTML5引入的一个绘图元素,允许开发者在网页上动态...

    Canvas圆形进度条Loading特效代码

    本知识点主要聚焦于如何利用Canvas实现一个圆形进度条的Loading动画效果。 首先,我们需要创建一个HTML文件并在其中设置一个Canvas元素。HTML代码可能如下所示: ```html &lt;!DOCTYPE html&gt; &lt;title&gt;Canvas圆形...

    Canvas圆形进度条Loading代码

    本话题主要围绕"Canvas圆形进度条Loading代码"这一主题展开,我们将深入探讨如何利用Canvas来实现一个美观且实用的圆形进度加载动画。 首先,我们要了解Canvas的基本结构。Canvas是一个矩形区域,在这个区域内,...

Global site tag (gtag.js) - Google Analytics