当一个画布被放置在另一个画布上时,文本会变得模糊
blurred text when a canvas is placed on top of another canvas
我想在鼠标移动时显示鼠标在画布上的x位置。谁能告诉我为什么文字这么大,这么模糊,还有有没有办法实现这两个画布之间的透明度
<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>
问题不是由于有两个画布。
问题是你使用CSS缩放画布,但你不修改它的像素数(height
和width
属性)。然后,结果是模糊的。
如果你不使用CSS缩放它,结果很好:Demo
或者,您可以尝试使用image-rendering
CSS属性(例如crisp-edges
, demo)
您也可以修改height
和width
属性时,浏览器的大小调整(resize
事件),并重新绘制画布。
<canvas id="myCanvas" style="display: block; height: 100%; width: 100%;">
^你不应该用CSS缩放画布元素,除非你想让它的内容被插值。考虑一个300x125px的图像,你已经缩放到浏览器窗口的宽度和高度-图像将变得模糊。
如果你想有一个全屏画布,你需要用JS缩放它:
var c = document.getElementById("myCanvas");
c.width = window.innerWidth;
c.height = window.innerHeight;
. .或HTML:
<canvas width="1920" height="1080"></canvas>
相关文章:
- 角度ui选择标记模糊时丢失文本输入
- jQuery中悬停在链接上的模糊文本
- 模糊的背景图像,而不是文本
- 如何防止在html中模糊(焦点丢失)时取消选择所选文本
- Action.on('模糊')不't处理输入文本-jQuery 1.9+
- 如何使用输入模糊事件更新多个具有相同类名的标签的文本
- 当发生模糊事件时,如何在元素上备份选定的文本
- 允许在对焦/模糊显示/隐藏文本区域内进行单击
- 防止在文本框中按 Enter 后触发模糊和键控事件
- 如何在输入中模糊文本模糊事件
- 有没有办法模糊/突出显示单选按钮的文本
- j查询验证模糊文本区域与其他输入问题
- 如何防止播放声音时文本区域模糊
- 清除输入,模糊文本区域和默认值(如果字段为空)
- 我可以使用 php 或 jquery 模糊文本吗?
- 在模糊上自动聚焦相同的文本框
- 如何防止在jQuery中翻页时出现文本模糊
- IE文本模糊时使用jQuery fadeIn
- 嵌入谷歌地图时文本模糊
- 当鼠标悬停在图标上时,按钮文本模糊