我想切片一个标志图像,并建立在一个网页上从很多小片,我想知道最好的方法来做到这一点是什么。如果可能的话,我宁愿避免使用闪光灯。
我可以在Photoshop中将logo切片,并逐渐删除切片,并将其保存为一系列图像,以幻灯片的形式运行。但是当我在谈论大量的切片时,比如大约500个,这将花费时间,并且可能不如其他方法看起来那么好。
是否有一种方法,也许使用jQuery,从许多小的html元素构建图像?
或许还有更好的方法?
我很乐意听取任何建议。
谢谢,尼克
这里有一个想法,我认为即使使用"普通"JavaScript也相当容易(但使用jQuery更容易):
- 在你的页面上包含一个样式为
visibility : hidden
的完整图像,在相同大小的容器div内。 - 使用jQuery创建一个网格的小不透明div绝对位于相同的容器div,与
z-index
,将它们置于图像之上,即,覆盖图像。当您创建它们时,将它们存储在数组中。 - 设置图像为
visibility : "visible"
- 随机排序上述数组,然后用
setTimeout
或setInterval
循环遍历,每次迭代删除一个div,逐渐显示图片。
当然,上面的优点是它可以处理任何图片,而不必对其进行切片,并且假设您提到了500个切片,您就不会有500个http请求来加载所有图片。如果你想让每个单独的切片显示有一点动画效果,你可以用jQuery的.slideUp()
或其他东西隐藏它。
另一方面,你可能喜欢图片的每一部分从不同的方向飞来之类的。为此,您仍然可以创建div的网格,但设置每个div都有一个(CSS)图像背景,并具有适当的偏移值,以便每个div都成为"拼图"的单独部分。
编辑:我忘了说可能已经有一个jQuery插件(如果不是无数的插件)做这种事情。我不知道具体是哪一个,但你可以在谷歌上搜索一下。以上只是我想到的第一个从头开始编写的方法…
编辑2:工作(sort of)演示: http://jsfiddle.net/sEE8R/1/(这只是一些可疑的代码,我根据上面的算法粗略地拼凑在一起。而不是一个图像,我使用了一个红色的div,它被绿色的div覆盖,随机删除。
将原始图像视为CSS精灵,并以编程方式创建作为其子集切片的元素。
或者,加载图像,重复使用drawImage()
将其子部分绘制到HTML5画布,使用toDataURL()
获得字符串并在JS中创建new Image
设置此数据URL。
您可能需要检查:
http://slicephotoshop.com 如果你的logo是由图层组成的,