Day20 - Fabricjs 与 Image map 仿制 highlight 场地图 说明

Fabricjs

官方文档

Fabric.js is a powerful and simple
Javascript HTML5 canvas library
Fabric provides interactive object model on top of canvas element
Fabric also has SVG-to-canvas (and canvas-to-SVG) parser

fabricjs 是一个更快速绘画 canvas 的 library,我们来看看他的api:

会发现,在我们前面复刻小画家的功能几乎都有了呢!

Image map

Image map

使用 HTML 图像映射,您可以在图像上创建可点击区域。

<map name="workmap">
  <area shape="rect" coords="34,44,270,350" alt="Computer" href="computer.htm">
  <area shape="rect" coords="290,172,333,250" alt="Phone" href="phone.htm">
  <area shape="circle" coords="337,300,44" alt="Cup of coffee" href="coffee.htm">
</map>
参数 用途
shape 形状
coords 点的位置
href 连结

应用

你可能会好奇,为什麽这两个会放在一起说呢?
因为我不够时间写文章...
从上面 Image map 可以发现,
我们要是能够利用 Fabricjs 绘制与纪录
就能做出一个 Image Map 产生器!

而这个产生器的应用可以用於哪里呢?
有没有订过演唱会分区的票?

看到了吗?其实这也是 canvas 的应用,
这里来列一下步骤:

情境

假设我们有各种的区域分区图

Step 1

利用 fabric js 来绘制场地分区图,并输出成 json

Step 2

将上面的 json 转成 area (coords)

Step 3

底层放上 image (不放也可以,可以直接把图片放在第二层 canvas) , 第二层 canvas ,再接着是 <map></map>

Step 4

<map></map> 内的 area 触发点击事件,把第二层的 canvas 画上 highlight

简易的点击区域 highlight 就完成啦!
很可惜因为时间的关系无法带大家直接做程序码,
不过根据刚才的步骤大概就可以完成一个雏形,
如果很懒得自己做出绘制区域的产生器,
网路上也有其他大神做了线上版 Imgae Map 产生器
输出阵列後就可以自行应用啦~
尽情发挥想像力吧!

参考

绘制Area:Image Map Creator

这里提供有趣的 Fabricjs 应用

模拟电影倒数:movieCountDown


<<:  每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day20

>>:  [day20]Vue实作-登入功能实作串接後端API(下)

Day10 用python写UI-聊聊文字方块Entry

耶~~~终於迈入第十天,完成了三分之一,今天要来讲文字方块,普遍常会看到的用法会在输入号密码的时候,...

[iT铁人赛Day22]练习题(1)

昨天教到如何下载以及使用疯狂程设,今天就来试着做一题练习题吧。 登入疯狂程设,点选CPE考古题就会出...

Day02 -本机环境准备,安装Python

本机环境 OS: Windows 10 原始码编辑工具: Visual Studio Code (後...

JS 物件的参考特性 DAY59

JS 在将值赋予到变数上时 会有两个特性(Call by value(传值) 与 Call by r...

#08 实作篇 — 使用 Next.js 的各种 Data Fetching 方式实作小专案 ft. Github API

大家好!昨天实作了小小专案,也写了一篇短短的介绍文,那今天跟大家分享怎麽用 Next.js 的各种 ...