5950X, 3090
Underligt fel behöver akut hjälp (Javascript)
Visa signatur
Hej jag har ett projekt i skolan där jag valt att skapa en rit-applikation. Jag har använt mig av HTML5 canvas.
Det är alltså själva touchfunktionen som är i javascript som jag behöver hjälp med, eftersom jag inte kan förklara det bra nog med ord slänger jag in en bild på problemet!
function startDraw(e_touch) {
if(!buttonDown)
{
context.beginPath();
context.moveTo(e_touch.touches[0].pageX, e_touch.touches[0].pageY);
buttonDown = true;
}
e_touch.preventDefault();
context.lineWidth=4;
}
function contDraw(e_touch) {
if(buttonDown)
{
context.lineTo(e_touch.touches[0].pageX,e_touch.touches[0].pageY);
context.stroke();
}
}
function stopDraw() {
buttonDown = false;
}
Inte helt insatt i denna funktionalitet, men verkar som om den inte tar in "toppen" i räkningen utav pageX/pageY. Kanske skulle behöva subtrahera menyhöjden ifrån vart den verkligen målar ut om du förstår!
Y-koordinaten är förmodligen förskjuten med samma avstånd som höjden på toolbaren ovanför, så problemet är sannolikt att du använder pageX och pageY, som lär vara relativa till hela sidan.
Har aldrig pillat med html5/canvas, så jag har ingen aning, men uppenbarligen förutsätter moveTo och linteTo-metoderna att du anger koordinater relativt själva canvasen, inte relativt hela sidan.
Om det finns en translate-metod i canvas så kan den nog lösa problemet. Alternativt kan du förstås dra bort x- och y-koordinaten för canvasens övre vänstra hörn, relativt sidan, alltså pageX - canvasX och pageY - canvasY, om du är med på vad jag menar?
5950X, 3090
Y-koordinaten är förmodligen förskjuten med samma avstånd som höjden på toolbaren ovanför, så problemet är sannolikt att du använder pageX och pageY, som lär vara relativa till hela sidan.
Har aldrig pillat med html5/canvas, så jag har ingen aning, men uppenbarligen förutsätter moveTo och linteTo-metoderna att du anger koordinater relativt själva canvasen, inte relativt hela sidan.
Om det finns en translate-metod i canvas så kan den nog lösa problemet. Alternativt kan du förstås dra bort x- och y-koordinaten för canvasens övre vänstra hörn, relativt sidan, alltså pageX - canvasX och pageY - canvasY, om du är med på vad jag menar?
Att jag inte tänkte på det! Som det är nu så är pageX och pageY på hela sidan och inte endast i canvasen (som det borde vara).
Satte nämligen dit toolbaren nyss och det var då det började krångla. Tack så mycket nu är jag på rätt spår igen
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.