V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
kylebing
V2EX  ›  分享创造

一个优雅的 js canvas 时钟表盘

  •  
  •   kylebing ·
    KyleBing · 81 天前 · 2823 次点击
    这是一个创建于 81 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做了个 js canvas 模拟表盘的时钟,感觉不错,后续慢慢优化。

    非常喜欢 iOS 时钟那样秒针平滑移动的效果,这个也是一样。

    黑色:http://kylebing.cn/tools/clock-a/?theme=black
    白色:http://kylebing.cn/tools/clock-a

    github: https://github.com/KyleBing/animate-clock-canvas

    第 1 条附言  ·  81 天前
    17 条回复    2024-08-18 08:08:55 +08:00
    xubeiyan
        1
    xubeiyan  
       81 天前
    在我的老掉牙 i7-8650U 上跑了下
    CPU:告辞 GPU: 告辞
    表盘不需要每帧都重绘,每帧只需要重绘三根指针就行了
    caola
        2
    caola  
       81 天前
    数字 3 和 9 建议旋转 90 度,4-8 数字旋转 180 度
    EJW
        3
    EJW  
       81 天前
    丝滑,很帅
    retrocode
        4
    retrocode  
       81 天前
    @xubeiyan 我测了下 应该是你浏览器没开硬件加速, 全走 cpu 了, 不得不说这效果纯走 cpu 占的有点过于多了 i9 占用直接干到 54%, 开硬件加速就正常多了 5%左右
    retrocode
        5
    retrocode  
       81 天前
    看了下代码可以优化下, draw 函数每次连表盘都重新绘制一遍, 非常消耗性能, 没必要感觉
    weixind
        6
    weixind  
       81 天前
    杀鸡用牛刀了。其实不用上 canvas 。
    lizhenda
        7
    lizhenda  
       81 天前
    很漂亮啊
    kylebing
        8
    kylebing  
    OP
       81 天前 via iPhone
    谢建议,在理,等优化下
    214L
        9
    214L  
       81 天前
    可以做一下分层,频繁更新的元素放在一个 canvas 里。
    royalknight
        10
    royalknight  
       81 天前
    直接 css 呢?对好时间,设置个旋转的 css 动画就行了
    WhateverYouLike
        11
    WhateverYouLike  
       81 天前 via iPhone
    很漂亮哦😯
    auvt
        12
    auvt  
       81 天前 via iPhone
    好漂亮!要是在老 kindle 上打开是不是就能旧物新用了
    lisongeee
        13
    lisongeee  
       81 天前
    看起来全是矢量图形,感觉可以 css+svg 实现,不需要 canvas
    kylebing
        14
    kylebing  
    OP
       81 天前
    @auvt kindle ? 性能够不够,这个挺耗资源的。
    undoing
        15
    undoing  
       80 天前
    是我的问题吗?怎么感觉 12 和 6 没有对齐
    xiaomoxian
        16
    xiaomoxian  
       79 天前 via Android
    好看好看 能把别人女朋友头像放表盘吗
    期待
    kylebing
        17
    kylebing  
    OP
       79 天前
    @xiaomoxian 你自己可以研究研究放上去 -.-lll
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:22 · PVG 00:22 · LAX 08:22 · JFK 11:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.