更改背景大小需要新的背景位置,任何解决方法?

时间:2014-06-30 22:28:57

标签: javascript html css

我有一张1320x1320 spritesheet,每张图片分别为120x120,121张图像。到目前为止,我一直在使用这个公式设置背景位置:

image[i].style.backgroundPosition = -120*i + "px " + -Math.floor(i/11)*120 + "px"

现在我已接近完成我的项目,我想更新一些快速修复,以便我不使用121 Math.floor来加载所有图像,因此更容易更新它们在将来添加新的时,无需重新排列精灵表中的所有图像按字母顺序排列。所以我去了一个程序来为我的所有图像生成当前的css位置,例如:

.image[1]{-600px -480px;} .image[2]{-1200px -840px;} .image[3]{-1200px -720px;} .image[4]{-1200px -600px;}

但问题是,如果我改变背景大小,它会完全破坏所有图像的位置。有一个实例,我一次加载所有图像,所以用户可以选择其中一个,但一次显示121个图像我需要缩小它一点,所以我从120x120到72x72的背景大小,但定位会被新方法破坏,有没有人可以解决这个问题?

我见过的所有背景大小+背景位置问题线程都是关于百分比和与我所拥有的完全不同的东西。

1 个答案:

答案 0 :(得分:0)

如果您只想缩小元素,可以随时使用css3

  transform: scale(.5)

及其webkit / firefox同行。

关于Math.floor()的第一点,我真的没有看到问题。只需将初始化放在一个循环中就可以了。

如果你真的想要使用i%11而不是地板。

希望能回答你的问题。