【发布时间】:2015-01-28 16:34:32
【问题描述】:
画布动画在网络浏览器上有效运行,但在使用 iPad 和 iPhone 在移动浏览器上进行测试时,动画永远不会启动。它只是简单地显示背景图像。没有给出错误消息。
动画基本上是一个图像,它从画布左侧的屏幕外移动,并在达到画布宽度的 75% 时停止。
这是代码
<script>
window.addEventListener("load", eventWindowLoaded, false);
function eventWindowLoaded () {
start();
}
function canvasSupport () {
return Modernizr.canvas;
}
var canvas = document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
var image1 = new Image();
image1.onload = function() {
ctx.clearRect(0, 0, 600, 400);
ctx.drawImage(image1, 0, 0);
}
image1.src="images/oven.jpg";
ctx.fillStyle = image1;
var currentX=cw;
var continueAnimating=true;
var nextMoveTime,maxMoves;
var expX = 50;
var expY = 200;
var image2 = new Image();
image2.onload=start;
image2.src="images/pies.png";
var image = new Image();
image.onload=start;
image.src="images/pies.png";
function start(){
maxMoves=(cw+image.width)*0.5;
nextMoveTime=performance.now();
requestAnimationFrame(animate);
function animate(currentTime){
if(continueAnimating){ requestAnimationFrame(animate); }
if(currentTime<nextMoveTime){return;}
nextMoveTime=currentTime; // + delay;
ctx.drawImage(image,currentX,193);
if(--currentX<-image.width){ currentX=cw; }
if(--maxMoves<0){continueAnimating=false;}
}
}
</script>
【问题讨论】:
-
performance.now 在 ipad/iphone 上不受支持。见这里:caniuse.com/#search=navigation
-
@GameAlchemist 感谢您告诉我,您知道有没有其他合适的替代方案?
标签: javascript html mobile canvas html5-canvas