Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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画布的不透明度_Javascript_Jquery_Css_Html5 Canvas - Fatal编程技术网

不应用JavaScript画布的不透明度

不应用JavaScript画布的不透明度,javascript,jquery,css,html5-canvas,Javascript,Jquery,Css,Html5 Canvas,当我移动鼠标并按下I时,我正在调用我的方法drawInventory() 我在drawInventory方法的开头设置了不透明度: function drawInventory() { inventoryCtx.fillStyle = "rgba(0, 0, 0, 0.7)"; inventoryCtx.fillRect(10, 10, invWidth-20, invHeight-20); } 当我移动鼠标时,不透明度正确地保持在.7,但是在按下I键后,不透明度降低 以下是我在I键上调用

当我移动鼠标并按下I时,我正在调用我的方法drawInventory()

我在drawInventory方法的开头设置了不透明度:

 function drawInventory() {
inventoryCtx.fillStyle = "rgba(0, 0, 0, 0.7)";
inventoryCtx.fillRect(10, 10, invWidth-20, invHeight-20);
 }
当我移动鼠标时,不透明度正确地保持在.7,但是在按下I键后,不透明度降低

以下是我在I键上调用的方法:

    function toggleInventory() {
    if(!showInventory) {
        showInventory = true;
        $("#inventoryCanvas").removeClass("hideClass");
        drawInventory();
        $("#inventoryCanvas").fadeIn(1);
    }
    else {
        $("#inventoryCanvas").fadeOut(100);
        showInventory = false;
    }
};
奇怪的是,第一次刷新页面并按i键后,不透明度就出现了。如果我按两次I,它会以更高的不透明度(更暗)返回,然后下一次它完全变暗。我不知道为什么每次调用同一个方法时它都会失去透明度

注意:我已经尝试了inventoryCtx.globalAlpha,它不会改变问题


感谢您的帮助。

画布对象是图像,最初是完全透明的

但是,当您使用上下文在其上绘制时,像素会更改以反映您的图形

如果你在画布上再画一次,你会从画布上当前的东西开始,这就是为什么你觉得不透明度没有被应用的原因;原因是它被应用在已经不是完全透明的像素上

请注意,隐藏和显示元素不会擦除其内容。每个画布实例将记住其像素的值,即使您在DOM树中移动它

要在绘制时保持可重复的结果,需要在开始绘制过程时使用清除画布

canvas.clearRect(0, 0, canvas.width, canvas.height);
或者通过使用设置画布对象大小

canvas.width = canvas.width;

因为调整画布的大小有一个记录在案的副作用,即即使大小保持不变,也会清除其内容。

太好了!你给我的那行简单的代码解决了我的整个问题,谢谢你。当我移动鼠标时,我正在重新调整它的大小,这就是为什么它没有引起那里的问题。