Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5画布:drawImage不适用于Firefox_Javascript_Html_Canvas_Drawimage - Fatal编程技术网

Javascript HTML5画布:drawImage不适用于Firefox

Javascript HTML5画布:drawImage不适用于Firefox,javascript,html,canvas,drawimage,Javascript,Html,Canvas,Drawimage,这段代码在chrome、OperaYandex和ie浏览器中运行,但未能在firefox上运行 代码中的“el”是我的图像(存储方式如下) fadeIn:功能(el){ var self=这个; varα=0; var interval=window.setInterval(函数(){ 如果(α

这段代码在chrome、OperaYandex和ie浏览器中运行,但未能在firefox上运行

代码中的“el”是我的图像(存储方式如下

fadeIn:功能(el){
var self=这个;
varα=0;
var interval=window.setInterval(函数(){
如果(α<1){
self.ctx.clearRect(0,0,lotify.Canvas.width,lotify.Canvas.height);
α+=0.01;
self.ctx.globalAlpha=α;
self.ctx.drawImage(el,0,0);
}否则{
间隔时间;
}
});
}

两个对firefox很重要的问题

  • setInterval需要一个间隔值,我将它设置为1ms
  • 未定义变量alpha。我将其定义为0.01(您可能希望创建一个局部变量,我将其作为全局变量)
  • 在FF上测试

    var编辑器={
    ctx:“”,
    fadeIn:功能(el){
    var self=这个;
    var interval=window.setInterval(函数(){
    如果(α<1){
    self.ctx.clearRect(0,0,lotify.Canvas.width,lotify.Canvas.height);
    α+=0.1;
    self.ctx.globalAlpha=α;
    self.ctx.drawImage(el,0,0);
    控制台日志(“ALPHA:+ALPHA”);
    }否则{
    控制台日志(“清除:+alpha”);
    间隔时间;
    }
    },1);
    },
    };
    彩票={};
    α=0.01;
    tracking.Canvas=document.getElementById(“Canvas”);
    editor.ctx=lotket.Canvas.getContext(“2d”);
    editor.fadeIn(document.getElementById(“img”)
    
    
    
    您可以使用具有跨浏览器兼容性的库。这一个是轻量级的,主要用于图像绘制/动画:点击
    F12
    并检查控制台是否有错误,FF在JavaScript方面没有其他浏览器那么宽容,这很可能是一个代码错误,但如果没有其余的代码,我只能猜测。没有错误,只是没有绘制图像!需要一个测试用例。我记得唯一相关的事情是,来自其他来源的数据可能不会绘制在画布上,以防止泄漏用户的数据。如果不包含
    setInterval
    second参数(时间单位:ms),则FF的行为与Chrome不同Chrome启动得非常快,而FF启动一次则什么也不做。我没等多久就知道了,但已经过了一分钟。
    fadeIn: function(el){
            var self = this;
    
            var alpha = 0;
            var interval = window.setInterval(function(){
                if (alpha < 1){
                    self.ctx.clearRect(0, 0, Lottery.Canvas.width, Lottery.Canvas.height );
                    alpha += 0.01;
                    self.ctx.globalAlpha = alpha;
                    self.ctx.drawImage(el, 0, 0);
                } else {
                    clearInterval(interval);
                }
            });
        }