我正在尝试使用带有 jquery 的 javascript 在 div 中创建一个无限滚动的图像。我正在使用的代码可以在小提琴HERE中看到。
这在当前浏览器中有效,但在 IE7 中失败。我的猜测是它与分配负 css 值有关,但我还没有找到解决方案。有谁知道如何在 ie7 的 chrome 中看到行为?
谢谢你的帮助。
编辑:如果我垂直向下滚动图像,我已经获得了跨浏览器的效果。可以在这里看到。
编辑2:我让它水平工作,但只向右移动。它似乎不喜欢负方向值。可以在这里看到。
我认为 IE7 只支持“左”属性的整数值!
将您的功能更改为:
$(function(){
reelDivs($('.reel div'), 'left', 500, -500, -1, 30);
});
将您的 CSS 更改为此并试一试:
.reel
{
position: relative;
top: 50px;
left: 50px;
width: 250px;
height: 500px;
overflow: hidden;
}
.reel div
{
position: absolute;
left: 0px;
height: 362px;
width: 500px;
background: url("http://www.deviantart.com/download/258376230/husky_puppy_by_blackdelive-d49twdi.png") no-repeat 0px top;
}
.reel div.b
{
left: 500px;
}
jsFiddle:http: //jsfiddle.net/eGnMX/
神速!
在卷轴 div 上放置一个 ID,而不是$('.reel div')
使用该 ID。我很确定 IE7 不支持getElementsByClassName
.
当您使用时,$('.reel div')
您是在告诉 jQuery 使用 getElementsByClassName。
考虑到像素是您的显示器可以渲染的最小尺寸,您如何将图像移动 0.1 像素?
据我所知,IE7 将不支持浮点测量(或至少不支持像素,尚未测试其他单元)。控制台记录返回的 CSS 左侧位置,您将看到 IE7 不返回浮点数。
使用 1 像素移动并降低重绘率以使其在 IE7 中工作。或者甚至更好地使用像素移动与速率来获得所需的结果。像素移动越高越好。
在访问者机器上重绘图像可能会很昂贵。即使您专门为游戏社区(通常拥有快速、高端系统)创建东西,我也不建议将其作为绝对要求。仅您的图像滚动条就可能严重落后于某些系统。
也不要忘记大多数显示器的刷新率不会低于 5 毫秒。所以期待它比这更快地重新绘制是没有意义的