我正在使用-webkit-transform: translate(-958px, 0);
动画
图像在开始水平移动后很快就会被切断,但是如果我稍微移动平板电脑屏幕,它会重新绘制屏幕并显示整个图像,同时平移并且非常平滑。
但我如何在代码中模拟这个?
答案 0 :(得分:2)
一些建议:
回到问题:
translate3d
将获得更好的性能,因为它不起作用,主要瓶颈在其他地方。根据我使用移动网络套件的经验,当有大图像(根据大小或尺寸)时,您可能会遇到麻烦:
如果您的UI触发重绘会使所有内容平滑,则滞后可能是由于图像加载&渲染强>
解决方案:
animation-delay
或setTimeout
2& 3,代码将是这样的:
$("<img>")
.attr({ src: " /* image url */ " })
.load(function(){
/* i. use class or animationName to set animation */
/* ii. force redraw go there if needed */
/* wrap i & ii into a setTimeout function inside this callback
if more delay is needed */
})
祝你好运。
答案 1 :(得分:0)
Paul Irish的一小段代码和博客文章可能对您有所帮助:
http://paulirish.com/2011/requestanimationframe-for-smart-animating/
如果它漂浮在你的船上,它几乎是跨浏览器。
答案 2 :(得分:0)
如果我没有正确地阅读你的问题,请原谅我。
您是否计划使用平板电脑的陀螺来平移大图像?这应该可以在代码中实现。
然而,据我所知,强制转换更快更新是出于开发人员的控制。您可以做的最好的事情就是确保平板电脑必须担心这一点。
<!DOCTYPE html>
<html>
<head>
<style>
body {
padding:0px;
overflow:hidden;
}
#img {
position:absolute;
left:0px;
top:20px;
-webkit-transition:left 0.5s;
}
</style>
</head>
<body>
<img id="img" src="img.png" />
</body>
<script>
function onOrientationChange(e) {
var img = document.getElementById("img");
var maxWidth = img.clientWidth - document.body.clientWidth;
img.style.left = ((e.gamma-90) * maxWidth / 180 ) + "px";
}
window.addEventListener('deviceorientation', function(e){onOrientationChange(e)}, true);
</script>
</html>
答案 3 :(得分:0)
您是否尝试使用翻译3D? GPU在使用时会启动。