javascript - 当一个 Canvas 放置在另一个 Canvas 之上时文本模糊

标签 javascript jquery html canvas

我想随着鼠标移动在 Canvas 上显示鼠标的 x 位置。有人可以告诉为什么文本如此大和模糊吗?还有什么方法可以实现这两个 Canvas 之间的透明度

<body style="margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden;">
  <canvas id="myCanvas" style="display: block; height: 100%; width: 100%;">
            Your browser does not support the HTML5 canvas tag.</canvas>  <canvas id="temp">
            Your browser does not support the HTML5 canvas tag.</canvas>
    <script type="text/javascript">

        var c = document.getElementById("myCanvas");

        var ctx = c.getContext("2d");

        var hgap = 0;
        var vgap = 0;
        var rows, cols;
        var annotation_x = 1;
        var row = 0; var col = 0;
        //ctx.font = "14px Arial";

        var t = document.getElementById("temp");
        tctx = t.getContext("2d");
        // tctx.lineWidth = 10;
        tctx.lineJoin = 'round';
        tctx.lineCap = 'round';
        tctx.strokStyle = 'red';


        var mouse = { x: 0, y: 0 };
        c.addEventListener('mousemove', function (evt) {
        //    tctx.clearRect(0, 0, c.width, c.height);
            ctx.clearRect(0, 0, c.width, c.height);
            mouse.x = evt.pageX;
            mouse.y = evt.pageY;
            ctx.fillText(mouse.x, 10, 10);

        }, false);



    </script>
</body>

最佳答案

问题不是因为有两个 Canvas 。

问题是您使用 CSS 缩放 Canvas ,但没有修改其像素数(heightwidth 属性)。然后,结果是模糊的。

如果不使用CSS缩放,结果很好:Demo

或者,您可以尝试使用 image-rendering CSS 属性(例如 crisp-edgesdemo )

您还可以在调整浏览器大小时修改 heightwidth 属性(resize 事件),并重新绘制 Canvas 。

关于javascript - 当一个 Canvas 放置在另一个 Canvas 之上时文本模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23958110/

相关文章:

javascript - 在 jquery 中突出显示相似的 rel 属性

javascript - 数据表:未捕获类型错误:使用按钮插件时无法读取未定义的属性 'copy'

javascript - 正则表达式前面部分的否定匹配

javascript - 从另一个选择中更改选择标签中的选项

jquery - 由 jQuery 触发的过渡时 Chrome 闪烁

javascript - 如何返回对象接口(interface)名称/类型?

javascript - 隐藏目标 div 后点击事件冒泡

javascript - 复制 Canvas 时禁用除 1 个 Canvas 之外的所有 Canvas 上的对象?

html - 如何将网站上已有的图标设为分享按钮?

javascript - 当用户尚未在表单中提交数据时,如何防止显示 JavaScript 错误消息?