首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Canvas无法绘制IE 11

Canvas无法绘制IE 11
EN

Stack Overflow用户
提问于 2017-11-26 16:25:54
回答 0查看 5.2K关注 0票数 0

我有一个画布代码来绘制签名。该代码在chrome和Firefox上运行得很好,但在IE11上完全不能绘制。

我的画布是:

代码语言:javascript
复制
<canvas id="signitureCanvas" style="border: 3px solid #000; cursor:crosshair; background-color:white;"></canvas>

我的代码如下:

代码语言:javascript
复制
 var canvas = document.getElementById('signitureCanvas');
    var ctx = canvas.getContext('2d');
    var canvasWidth = 200;
    var canvasLength = 120;
    canvas.width = canvasWidth;
    canvas.height = canvasLength;
    var canvasx = $(canvas).offset().left;
    var canvasy = $(canvas).offset().top;
    var last_mousex = last_mousey = 0;
    var mousex = mousey = 0;
    var mousedown = false;
    var tooltype = 'draw';

    //Mousedown
    $(canvas).on('mousedown', function (e) {
        last_mousex = mousex = parseInt(e.clientX - canvasx);
        last_mousey = mousey = parseInt(e.clientY - canvasy);
        mousedown = true;
    });

    //Mouseup
    $(canvas).on('mouseup', function (e) {
        mousedown = false;
    });

    //Mousemove
    $(canvas).on('mousemove', function (e) {
        mousex = parseInt(e.clientX - canvasx);
        mousey = parseInt(e.clientY - canvasy);
        if (mousedown) {
            ctx.beginPath();
            if (tooltype == 'draw') {
                ctx.globalCompositeOperation = 'source-over';
                ctx.strokeStyle = 'black';
                ctx.lineWidth = 3;
            } else {
                ctx.globalCompositeOperation = 'destination-out';
                ctx.lineWidth = 10;
            }
            ctx.moveTo(last_mousex, last_mousey);
            ctx.lineTo(mousex, mousey);
            ctx.lineJoin = ctx.lineCap = 'round';
            ctx.stroke();
        }
        last_mousex = mousex;
        last_mousey = mousey;
    });

    function ClearCanvas() {
        var canvas = document.getElementById('signitureCanvas');
        var ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, canvas.width, canvas.height);
    }

IE 11是不是特别有问题?

编辑:

我发现问题出在我的Iframe上:

当高度和宽度设置为300时,一切正常:

代码语言:javascript
复制
 <embed id="fred"  type="application/pdf" style="border:1px solid #666CCC" title="PDF in an i-Frame" src="@Model.FilePath" frameborder="1" scrolling="yes" height="300" width="300" />

当我将其设置为1000时,它将不起作用:

代码语言:javascript
复制
 <embed id="fred"  type="application/pdf" style="border:1px solid #666CCC" title="PDF in an i-Frame" src="@Model.FilePath" frameborder="1" scrolling="yes" height="1000" width="1000" />

我相信是有偏移量的问题,但我想不出该怎么解决。

有什么帮助吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47494266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档