Erst mal Danke für die Ermutigung. Die kann ich im Moment gut gebrauchen ;-) . Ich denke auch, dass eine solche Funktion auch für Andere nützlich sein kann. Hier zunächst mal der Canvas-Code (Ob es hübsch ist, überlasse ich Ihnen. Funktionell reicht es aus für das, was ich durchführen möchte):
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Malbox</title>
<style type="text/css" media="screen">
body { background:#e6f2ff; color:#FFF; text-align:left; font-size:90%; font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; margin:0; padding:0; }
canvas { cursor:crosshair; background:#FFF; margin:16px; }
p { margin:16px; }
canvas { border: 1px solid black; }
</style>
</head><body><canvas id="Malflaeche" width="300" height="300" style="position: absolute;"></canvas>
<script>
(function () {
var el = document.getElementById('Malflaeche');
var ctx = el.getContext('2d');
var isDrawing;
el.onmousedown = function(e) {
isDrawing = true;
ctx.lineWidth = 3;
ctx.lineJoin = ctx.lineCap = 'round';
ctx.shadowBlur = 5;
ctx.shadowOffsetX =-5
ctx.shadowOffsetX =-5
ctx.shadowColor = 'rgb(0, 0, 0)';
ctx.moveTo(e.clientX, e.clientY);
};
el.onmousemove = function(e) {
if (isDrawing) {
ctx.lineTo(e.clientX, e.clientY);
ctx.stroke();
}
};
el.onmouseup = function() {
isDrawing = false;
};
})();
var canvas = document.getElementById('malflaeche');
canvas.toBlob(function(blob) {
var newImg = document.createElement('img'),
url = URL.createObjectURL(blob);
newImg.onload = function() {
// no longer need to read the blob so it's revoked
URL.revokeObjectURL(url);
};
newImg.src = url;
document.body.appendChild(newImg);
});
</script>
</body></html>
Leider habe ich ihn auf der SoSCi Survey-Seite zwar platzieren können, aber das Malen funktioniert dort nicht und der Rahmen sitzt noch "schief".
Im Backend:
https://www.soscisurvey.de/admin/index.php?o=Questionnaire&a=edit&id=361668
Im Frontend:
https://www.soscisurvey.de/preferLU2019/?q=base&admin&debug&page=13&l=ger
Da ich noch nix malen kann, kann ich auch noch nichts aufnehmen.
Ob der von Ihnen angegebene Zusatzcode bei der Frage hier
https://www.soscisurvey.de/admin/index.php?o=question§ion=939596&question=6434038 sitzen muss, oder auf der Seite ist mir auch noch unklar.
Würde mich freuen, wenn Sie mir weiterhelfen könnten.
**Ach, beinah hätte ich es vergessen, die Fehlermeldung derzeit ist:**
TypeError: canvas is null[Weitere Informationen] preferLU2019:448:1
<anonym>
https://www.soscisurvey.de/preferLU2019/:448:1