`

HTML5 Canvas实战——HTML5 Canvas时间效果

阅读更多

HTML5 Canvas实战

 

function clockTest() {
    var canvas = document.getElementById('canvas');
    if (!(canvas && canvas.getContext)) {
        return;
    }
    var ct = canvas.getContext('2d');
    var w = canvas.width = 500;
    var h = canvas.height = 300;
    var r1 = 95;
    var c3 = ct.createLinearGradient(0, 0, 0, h);

    c3.addColorStop(0, '#FFF');
    c3.addColorStop(0.2, '#dad9e0');
    c3.addColorStop(0.4, '#adb0b6');
    c3.addColorStop(0.6, '#8f8f99');
    c3.addColorStop(0.8, '#86878b');
    c3.addColorStop(1, '#88898e');

    var c4 = ct.createRadialGradient(w / 2, h / 2, w, w, w, w);
    c4.addColorStop(0, 'rgba(0,0,0,1)');
    c4.addColorStop(0.2, 'rgba(0,0,0,0.8)');
    c4.addColorStop(0.3, 'rgba(0,0,0,0)');
    c4.addColorStop(0, 'rgba(0,0,0,0)');

    function clock() {
        var d = new Date();
        var dH = d.getHours();
        var dM = d.getMinutes();
        var dS = d.getSeconds();
        //return;
        ct.clearRect(0, 0, w, h);
        ct.save();
        ct.beginPath();
        ct.strokeStyle = 'rgba(0,0,0,0.1)';
        ct.fillStyle = c3;
        ct.arc(w / 2, h / 2, 135, 0, Math.PI * 2, true);
        ct.closePath();
        ct.fill();
        ct.stroke();
        ct.restore();

        ct.save();
        ct.beginPath();
        ct.strokeStyle = 'rgba(0,0,0,0.1)';
        ct.fillStyle = '#E2E9F1';
        ct.arc(w / 2, h / 2, 120, 0, Math.PI * 2, true);
        ct.closePath();
        ct.fill();
        ct.stroke();
        ct.restore();

        for (var i = 0; i < 60; i++) {
            ct.save();
            ct.lineCap = 'square';
            ct.beginPath();
            if (i % 5 === 0) {
                ct.lineWidth = 5;
                ct.strokeStyle = '#333';
            } else {
                ct.lineWidth = 2;
                ct.strokeStyle = '#333';
            }
            ct.translate(w / 2, h / 2);
            ct.rotate(i * 6 * Math.PI / 180);
            ct.moveTo(0, -120);
            if (i % 5 === 0) {
                ct.lineTo(0, -105);
            } else {
                ct.lineTo(0, -110);
            }
            ct.closePath();
            ct.stroke();
            ct.restore();
        }

        ct.save();
        ct.translate(w / 2, h / 2);
        ct.fillColor = '#369';
        ct.textAlign = 'center';
        ct.textBaseline = 'middle';
        ct.font = '25px times new roman';
        ct.fillText(12, 0, -r1);
        ct.fillText(3, r1, -0);
        ct.fillText(6, 0, r1);
        ct.fillText(9, -r1, -0);
        ct.fillStyle = '#333';
        ct.font = '16px verdara';
        ct.fillText('KINGWELL', 0, 50);
        ct.restore();

        ct.save();
        ct.beginPath();
        ct.translate(w / 2, h / 2);
        ct.rotate((dH + dM / 60) * 30 * Math.PI / 180);
        ct.lineWidth = 10;
        ct.strokeStyle = '#222';
        ct.moveTo(0, 15);
        ct.lineTo(0, -70);
        ct.closePath();
        ct.stroke();
        ct.restore();

        ct.save();
        ct.beginPath();
        ct.translate(w / 2, h / 2);
        ct.rotate((dM + dS / 60) * 6 * Math.PI / 180);
        ct.lineWidth = 6;
        ct.strokeStyle = '#333';
        ct.moveTo(0, 20);
        ct.lineTo(0, -90);
        ct.closePath();
        ct.stroke();
        ct.restore();

        ct.save();
        ct.beginPath();
        ct.translate(w / 2, h / 2);
        ct.rotate(dS * 6 * Math.PI / 180);
        ct.lineWidth = 2;
        ct.strokeStyle = '#C00';
        ct.moveTo(0, 25);
        ct.lineTo(0, -100);
        ct.closePath();
        ct.stroke();
        ct.restore();

        ct.save();
        ct.beginPath();
        ct.translate(w / 2, h / 2);
        ct.arc(0, 0, 6, 0, Math.PI * 2, true);
        ct.fillStyle = '#C00';
        ct.closePath();
        ct.fill();
        ct.restore();
        setTimeout(clock, 1000);
    }
    clock();
}
clockTest();

 

分享到:
评论
1 楼 小林夕 2013-08-21  
看看一个用canvas到极致的案例 ProcessOn

相关推荐

    HTML5 Canvas 游戏开发实战PDF+源码

    本书《HTML5 Canvas游戏开发实战》由张路斌(lufy_legend)编写,深入浅出地讲解了如何利用HTML5 Canvas进行游戏开发,结合提供的源码实例,读者可以更直观地学习和理解相关技术。 1. **HTML5 Canvas基础** - ...

    HTML5 Canvas实战pdf下载

    这本书——"HTML5 Canvas实战"显然深入探讨了这一技术,并提供了实践案例,非常适合前端开发者深入学习和提升技能。 Canvas是HTML5标准的一部分,它提供了一个二维绘图上下文,可以通过JavaScript来绘制图形,包括...

    html5实战——在线涂鸦系统

    自己可以对你的所有绘画进行管理(分类和删除)。...其中使用到了bootstrap,利用html5的canvas来进行绘画。 localStorage来完成登录账户保存到这一会话中。使用websql保存账户和绘画。利用html5的拖拽进行分类。

    从入门到精通HTML5——PDF——网盘链接

     2.3.12 设置网页的过渡效果 26  2.4 基底网址标记&lt;base&gt; 29  2.5 页面的主体标记&lt;body&gt; 30  2.5.1 设置文字颜色——text 31  2.5.2 背景颜色属性——bgcolor 32  2.5.3 背景图像属性——...

    3 冰桶挑战-HTML5-实战游戏开发教程.rar

    【HTML5实战游戏开发教程——冰桶挑战】 HTML5作为现代网页开发的主流技术,以其强大的功能和跨平台兼容性,极大地推动了网页游戏的发展。本教程“3 冰桶挑战-HTML5-实战游戏开发教程”正是针对这一主题,旨在帮助...

    html5——企业网页

    在这个“html5——企业网页”的实践中,我们将探讨HTML5如何应用于构建现代企业网站,以及其核心知识点。 首先,HTML5的语义化元素是其一大亮点。如`&lt;header&gt;`、`&lt;nav&gt;`、`&lt;main&gt;`、`&lt;article&gt;`、`&lt;aside&gt;`和`...

    响应式Web设计HTML5和CSS3实战第2版_html_

    本资源——"响应式Web设计HTML5和CSS3实战第2版"——提供了深入的指导,帮助开发者理解和应用这两种技术。 HTML5作为新一代的超文本标记语言,引入了许多新特性,增强了网页的交互性和可用性。例如,新的语义化标签...

    win8开发参考书——用HTML5和JAVESCRIPT开发win8应用

    《Win8开发参考书——用HTML5和JAVESCRIPT开发Win8应用》是一本由微软内部专家亲述,深入浅出地介绍了如何利用HTML5和JavaScript开发吸引人的Windows 8应用的专业书籍。本书不仅提供了丰富的理论知识,还涵盖了实际...

    个人blog首页源文档

    5. ** canvas 和 svg**:HTML5的&lt;canvas&gt;元素用于在网页上进行动态图形绘制,而SVG(Scalable Vector Graphics)则提供矢量图的支持,两者为网页带来丰富的图形和动画效果。 个人blog的源代码通常包含以下几个部分...

    HTML5实现屏幕手势解锁代码包

    在本实例中,"HTML5实现屏幕手势解锁代码包"是利用HTML5的核心技术之一——Canvas,来构建一个类似于手机屏幕的手势解锁功能。Canvas是一个可编程的画布,允许开发者通过JavaScript进行像素级别的图像处理,包括绘制...

    HTML5自学教材源码

    这个"HTML5自学教材源码"提供了HTML5中的一个重要组件——canvas的学习资源,它主要用于在网页上绘制图形、创建动画以及构建游戏。Canvas是HTML5的一个核心元素,允许开发者通过JavaScript进行动态图像处理,为网页...

    HTML5实训大作业——站酷网某工作室首页仿写

    【HTML5实训大作业——站酷网某工作室首页仿写】是一个基于Vue.js技术栈的前端项目,旨在通过模仿站酷网上某个工作室的首页,帮助学习者深化对HTML5、CSS3以及Vue.js的理解和应用。这个项目不仅包含了网页结构的设计...

    HTML5+CSS3+JS入门教程 + 源代码 pdf

    5. 实战项目:通过实践项目将理论知识转化为实际技能,如创建一个简单的交互式网页。 教程中的源代码部分会提供实例,供读者跟随学习并理解代码逻辑,从而加深对技术的理解。下载试读可以让潜在的学习者在决定是否...

    分享最好的HTML5编码教程和参考手册

    - **定义**:HTML5(HyperText Markup Language 5)是万维网的核心语言——超文本标记语言的第五次重大修改。尽管它并非全新的技术,但带来了诸多改进和新特性,使其成为Web开发领域的一大革新。 - **重要性**:随着...

    HTML5与CSS3实战指南

    《HTML5与CSS3实战指南》一书深入浅出地介绍了Web开发中最为关键的两项技术——HTML5和CSS3。这本书不仅为读者提供了理论知识,更提供了大量的实战案例和技巧,使读者能够在实践中掌握这些技术。 首先,关于HTML5,...

    html5资料汇总(第一部分)

    9. **HTML5 Canvas 游戏开发实例详解.pptx**:更深入的Canvas游戏开发实例,可能包括具体的代码示例和实战技巧,对于想要提升游戏开发技能的开发者来说非常有价值。 10. **HTML5游戏开发实例分享(敲门沙龙版).pptx*...

    HTML项目实战完结版

    4. HTML5新特性:HTML5是当前广泛使用的版本,引入了许多新元素和功能,如`&lt;canvas&gt;`用于图形绘制,`&lt;video&gt;`和`&lt;audio&gt;`用于多媒体播放,`&lt;form&gt;`元素的增强等。这些新特性极大地扩展了HTML的应用范围,使得开发者...

    Immunity Canvas7.26.zip

    Canvas的核心是其脚本语言——Dafny,这是一种专为创建恶意代码和理解其行为而设计的语言。通过Dafny,用户可以编写复杂的攻击脚本,模拟各种漏洞利用场景,从而更好地理解和预防潜在的安全威胁。Dafny的强大之处...

Global site tag (gtag.js) - Google Analytics