为什么更改画布大小会重置其参数?

问题描述 投票:2回答:1

当我更改画布大小时,我注意到参数'mozImageSmoothingEnabled'正在重置。

HTML

<canvas id='canv'>Your browser don't support canvas.</canvas>

Javascript

var cnv = document.getElementById('canv');
var ctx = cnv.getContext('2d');
console.log(ctx.mozImageSmoothingEnabled); // default 'true'
ctx.mozImageSmoothingEnabled = false;
console.log(ctx.mozImageSmoothingEnabled); // shows 'false'
cnv.width = 100;
console.log(ctx.mozImageSmoothingEnabled); // shows 'true'

[JSFiddle:https://jsfiddle.net/epvtuz37/

这是错误,还是预期的行为?

javascript firefox canvas mozilla
1个回答
4
投票

因为更改画布widthheight参数,所以附加上下文的[[every属性将重置为其默认值。

From specs

创建画布元素时,随后每当设置width和height属性(无论是新值还是之前的值)时,位图和任何关联的上下文都必须清除回其初始状态,并使用新指定的坐标空间尺寸。
© www.soinside.com 2019 - 2024. All rights reserved.