美文网首页让前端飞Web前端之路程序员
canvas制作主题可配置化,可拖拽时钟

canvas制作主题可配置化,可拖拽时钟

作者: tiancai啊呆 | 来源:发表于2017-11-19 17:11 被阅读121次

最近学习了canvas之后,就用canvas制作了一个主题可配置化,可拖拽时钟。话不多说,直接看效果图:



具体的实现思路也很简单:首先绘制表盘,其次绘制时针分针秒针,然后获取时间进行渲染,最后用定时器每秒绘制一次即可。为了实现主题可配置,对外暴露构造函数,构造函数的参数为可配置化对象。至于拖拽效果,给时钟注册对应的事件监听就好了。

  • 主要用到的方法:
fillText(element, x, y);   //在指定位置绘制文本
arc(x, y, r, 0, 2 * Math.PI); //绘制圆
fill()           //填充路径
stroke()         //绘制路径
save()           //保存当前环境的状态
restore()        //返回之前保存过的路径状态和属性
rotate(angle)    //旋转当前的绘图。 
translate(x,y)   //重新映射画布上的 (0,0) 位置。   
  • 要点:
    • translate(width / 2, height / 2) 使canvas的(0,0) 位置为canvas的中心。
    • fillText(element, x, y) 绘制表盘上的数字时,如何确定它的位置x,y。
      x= Math.cos(rad) * r; y=Math.sin(rad) * r
    • rotate(angle) 其实指针并没有转动,转动的是canvas画布。
    • save() restore() 绘制之前保存当前环境状态,绘制之后返回之前保存过的环境。

具体的实现代码已上传至GitHub,有兴趣的可以去源码,github地址
大家的平时工作中如果需要用到的话,可以使用我的Clock插件,插件的使用方法详见使用说明
欢迎大家指出不足,共同进步。

相关文章

  • canvas制作主题可配置化,可拖拽时钟

    最近学习了canvas之后,就用canvas制作了一个主题可配置化,可拖拽时钟。话不多说,直接看效果图: 具体的实...

  • canvas 可拖拽图片选区

    近日,在完成了毕设的大部分功能之后,指导老师认为还需要在添加一些功能,我最后决定添加一个图片编辑功能——图片编辑,...

  • 使用 Canvas 制作时钟

    如果你还不会 canvas 请参我的文章: Canvas 使用指南和几个套路 其实已经使用 canvas 写了好几...

  • 可拖拽组件

  • 可拖拽div

    一个在移动端及PC端都可以使用的拖拽函数。 使用方法 需要先设置position属性,absolute relat...

  • 可拖拽div

  • h5 新特性

    语义化标签 表单新特性 video和audio canvas画布 webworker webscoket 拖拽ap...

  • Canvas制作滚动的数字时钟

    这是一款滚动的数字时钟,使用 canvas 制作,采用 12 小时制,右上角显示 AM 或 PM,时钟以秒为单位,...

  • html面试题

    语义化标签 音视频处理 audio video 新媒体代替了flash canvas / webGL webGL可...

  • 拖拽操作

    应用: 1.拖拽排序2.拖拽上传3.拖拽裁剪 拖拽流程 确定可拖拽的内容-->开始拖拽-->拖拽过程-->结束拖拽...

网友评论

    本文标题:canvas制作主题可配置化,可拖拽时钟

    本文链接:https://www.haomeiwen.com/subject/wlcpvxtx.html