改变背景大小需要新的背景位置,任何解决方法
Changing background-size requires new background-position, any workaround?
我有一个1320x1320的精灵表,每个单独的图像是120x120,121个图像。我一直使用这个公式来设置背景位置,直到现在:
image[i].style.backgroundPosition = -120*i + "px " + -Math.floor(i/11)*120 + "px"
现在我接近完成我的项目,我想更新一些我做的快速修复,所以我不使用121数学。地板是加载所有的图像,所以它更容易在未来更新它们,而不必重新安排精灵表中的所有图像按字母顺序,当我添加新的。所以我使用了一个程序来为我所有的图片生成当前的css位置,例如:
.image[1]{-600px -480px;}
.image[2]{-1200px -840px;}
.image[3]{-1200px -720px;}
.image[4]{-1200px -600px;}
,但问题是,如果我改变背景大小,它完全破坏了所有图像的位置。有一个例子,我一次加载所有图像,用户可以选择其中一张,但要一次显示121张图像,我需要缩小一点,从120x120到72x72, background-size,但新方法破坏了定位,有人能解决这个问题吗?
我看到的所有关于background-size + background-position问题的线程都是关于百分比和一些与我所拥有的完全不同的东西。
如果你只是想缩小元素你可以使用css3
transform: scale(.5)
和对应的webkit/firefox。
对于你关于Math.floor()的第一点,我真的不觉得有什么问题。只要把初始化放到循环中,就可以了。
如果你真的想用i%11代替地板
希望这能回答你的问题。
- jQuery-仅更改Y轴的CSS背景位置
- 仅为背景位置X轴制作动画
- 如何将CSS背景位置属性从百分比转换为像素
- 使用 jQuery 限制滚动时的垂直背景位置
- 视差/背景位置的特征检测
- 根据背景位置更改光标 URL
- 精灵图像的背景位置在 IE 中不起作用,用于倒计时时钟
- 如何在背景图像到达底部时停止背景位置更改
- IE10 背景位置 x 的解决方法
- 根据当前背景位置更改背景位置
- 在 Javascript 中获取 posX 和 posY 的背景位置
- 通过 javascript 通过增量修改 CSS 背景位置
- 用于更改背景位置的动态变量
- 背景位置:固定
- 滚动到页面底部时更改背景位置
- 更改其背景位置时,背景图像消失
- 使用 jquery 或 javaScript 更改背景位置的值
- 使用 jQuery 设置背景位置
- 根据鼠标移动将背景位置 x px 向左/向右移动(从背景位置:中心开始)
- 使用Javascript设置图像的背景位置