【发布时间】:2017-11-02 06:56:21
【问题描述】:
我需要制作一个由许多非矩形形状组成的图案。每个形状都必须是交互式的,并在点击时显示图像。
请求是拍摄彩色玻璃的图像并将其变成一个充满图像的网页。每个窗格必须是可点击的,类似于您在教堂中看到的那些,但在第一次加载时,每个形状都是黑白的,点击后它会显示玻璃的颜色。
我想这个解决方案将包含 2 个部分,整个彩色玻璃图像的彩色版本和上面的黑白版本。然后不知何故,点击时每个小玻璃窗格都需要隐藏其下方的黑白部分以显示下方的彩色图像。
我不知道解决此问题的最佳解决方案是什么,也没有发现任何有用的东西可以帮助您使用形状和随机交互区域进行类似的操作。我在下面插入了一个结果示例,想象每个玻璃部分都是可点击的,点击时会显示颜色。
白线只是表示每个窗格的行为独立于其他窗格。
【问题讨论】:
-
这是
<svg>的工作 -
你的客户真奇怪!出于好奇,我想在您完成后查看上下文或最终产品。
-
有很多可点击的 Voronoi 图的 d3 示例,您可能会发现查看这些示例很有趣。
-
从问题中不清楚图像是动态的/未知的,还是只是一个已知的图像(或一组图像)。如果知道,SVG 是一个很好的选择,并且已经很好地覆盖了。如果图像是未知的/形状的任意排列(当前问题的措辞对我来说意味着),则需要在 JS 中进行一些边缘检测(可能通过
<canvas>?)并首先在代码中构建形状。
标签: javascript html css svg