【发布时间】:2017-02-07 05:33:18
【问题描述】:
我正在制作一个页面,希望人们能够在其中重叠图像,然后将它们上传到我的服务器。
我已经构建了上传页面,并在画布中放置了两张测试图像。唯一的问题是能够通过按钮或复选框隐藏/显示这两个图像。
我在这里上传了一个测试页面:http://kaosmos.no/bokbodentest2/upload.html
这是我的画布代码:
<input type="checkbox"/>Check to hide img1
<input type="checkbox"/>Check to hide img2
<img class="bilder" id="img1" src="test1.png">
<img class="bilder" id="img2" src="test2.png">
<canvas id="canvas"></canvas>
<script type="text/javascript">
var img1 = document.getElementById('img1');
var img2 = document.getElementById('img2');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
canvas.width = img1.width;
canvas.height = img1.height;
context.globalAlpha = 1.0;
context.drawImage(img1, 0, 0);
context.globalAlpha = 0.5; //Remove if pngs have alpha
context.drawImage(img2, 0, 0);
</script>
还有 CSS:
canvas {
border: solid;
overflow: hidden;
}
canvas img {
width: 600px;
position: absolute;
mix-blend-mode: multiply;
}
.bilder {
display: none;
}
显示:无;在“bilder”类中,图像不会在画布外可见。如何制作隐藏/显示这些图像的功能?
非常感谢任何帮助!
【问题讨论】:
-
您想在画布上还是在画布之外显示/隐藏它们?
-
一旦图像被绘制到画布上,它就不再链接到 DOM 中的原始元素。如果你想在画布上隐藏它,你需要在没有 context.drawImage 调用的情况下重绘画布。
-
@MattMokary 我想在画布上显示/隐藏它,以便用户可以“组合”自己的组合。
-
@AndrewLeedham 你有关于如何做到这一点的任何代码示例吗? :)
-
也许这样的东西可以工作?
code $(document).ready(function () { if ($("#checkbox1").is(":checked")) { var img1 = document.getElementById('img1'); var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); } else if ($("#checkbox1").not(":checked")) { context.clearRect(0, 0, canvas.width, canvas.height); }
标签: javascript html canvas upload html5-canvas