具有悬停效果的画布平铺网格、平铺表等
canvas tile grid with hover effects, tilesheet, etc
我一直在为画布构建一个基于平铺的显示网格。到目前为止,我已经做到了:http://jsfiddle.net/dDmTf/7/
我有一些问题,不能完全掌握是:
-
初始加载时间太荒谬了。。。我不明白我做错了什么-修复了,发现我渲染的^32比我应该渲染的多 - 悬停效果"应该"只高亮显示互动程序的边界,它会擦除它,如果不重新渲染整个画布,我就无法恢复上一个互动程序
-
如何使用波浪表,为我提供单个图像而不是一堆小图像 -
调整窗口大小(调整画布大小)也会擦除画布。我需要重新渲染吗?或者,当宽度/高度发生变化时,我可以保持各种事物的状态吗-添加了一个onresize
回调,它会重新渲染地图。也许不是最好的方法 - 多层?如何允许透明.png文件相互重叠
这些都是我现在遇到的主要问题,任何指导都将不胜感激。
此外,如果您有我的javascript的任何指针,请放心!我不断地学习,我确信我做错了很多事情。
编辑
仅供参考,我只是复制粘贴了当前显示在jsfiddle上的精灵图。这不是我打算使用的,但它比上传更容易。我计划维护一个32x32的网格,而不是(看起来是)来自tilesheet 的16x16网格
编辑
我现在有一个32x32的瓷砖表显示在那里,但悬停效果仍然在破坏它,我不知道如何"知道"旧的值是什么。
问题是在"mouseout"之后没有重新绘制瓷砖。你要么需要在移出单个磁贴后重新绘制它,但随着事情变得更加复杂或更好,这可能会变得棘手。
- 清除画布
- 绘制网格
- 绘制瓷砖
- 然后高亮显示/清除该单元格
如果你最终有任何类型的动画,这是一个无论如何都会使用的过程,否则当某个东西从一个瓦片移动到另一个瓦片时,它会留下重影图像。
相关文章:
- 如何在 Three.js 中将 3D 网格“展平”为 2D 形状
- 打开一个新窗口并平铺生成的窗口
- 什么's传单使用的平铺格式
- 显示数据库中的图像平铺
- 如何在相位器中的地图图层上获取平铺类型
- 如何在 OpenLayers3 中居中平铺图层
- 具有悬停效果的画布平铺网格、平铺表等
- 我可以将我的列表平铺作为第一个空值选项吗
- 传单JS:基于边界框加载平铺层
- mapbox.js 1.6.2-更改缩放级别的平铺集
- 屏幕大小的最大等轴测平铺
- 什么是平铺地图以及如何声明
- 平铺图像查看器.有两个并排的图像,可以动态加载
- 用javascript在谷歌地图上平铺纹理
- 加载/渲染一个新的基于平铺的地图到HTML5画布,替换一个旧的地图
- 将自定义css应用于sapui5平铺
- 平铺的jQuery网格
- 我如何改变表/网格视图平铺视图
- HTML/CSS/JS:大型滚动和缩放平铺网格
- ng-if和网格平铺的问题