JS怎么把图片分成一个个小块

JavaScript013

JS怎么把图片分成一个个小块,第1张

两个方法,没现成代码,自己想办法搞:

简单的:js判断鼠标在图片上时,产生一个div覆盖在图片上面,这个div给格子背景图

(兼容性好,但是格子尺寸固定,一张网页上多个不同尺寸图片上用,格子全一样大)

复杂的:js生成个html5的canvas画布,把图片放上去,再用js画些线条在上面

(无法顾及不支持html5的浏览器,但是格子尺寸你可以根据图片尺寸比例动态生成)

这个一般是用CSS来显示特定内容的。

譬如有张图片icon.png,里面有很多内容,便可以在CSS中这么用。

.sa {width:20pxheight:20pxoverflow:hiddenbackground:url(icon.png) no-repeat -20px -30px}

注解:

宽度和高度是控制显示范围的

overflow:hidden是确保不会有多余显示

background:url(icon.png)是使用图片作为背景显示,并且也只能作为背景显示才能达到这种做法的目的

no-repeat是不会重复,这个不是必须的,不过有会规范一些

-20px -30px是图片的定位,显示时会将图片按这个坐标来定位

上面只是针对固定大小的显示内容来定义的,如果大小不固定,在background属性中有可能需要更改设置。不过重点是这种方式是这么使用的。

如果大小不固定,也可以这样定义,让背景自适应:

.sa {width:autoheight:20pxoverflow:hiddenbackground:url(icon.png) no-repeat right bottom}

对于图片2(首页标签)的内容,也是这么使用的:

.a {width:100pxheight:25pxoverflow:hiddenbackground:url(2.png) no-repeat left center}

.a:hover {background-position:right center}

这样一来,当鼠标移到元素时,背景定位发生变化,显示的内容便由左边的变成右边的了。

不过你应该对CSS这方面还不是很了解,目前可能还没有很便捷的方式对这些CSS进行快速定义,所以也只能告诉你是这么一回事,但未必能帮得上你。