Erfassen von Y-Koordinaten mit touchmove: eine Schritt-für-Schritt-Anleitung
P粉996763314
P粉996763314 2023-10-08 10:35:03
0
1
551

Ich versuche, eine mobile App mit HTML, Javascript und Canvas zu erstellen. Grundsätzlich erhöht das Scrollen nach unten den Zoom des Bildes und das Scrollen nach oben verringert ihn, aber ich kann den Zoom nur verringern, weil die Größe beim Scrollen nach oben immer größer wird, I Ich möchte, dass es kleiner wird.

Teil des Javascript-Codes:

document.addEventListener('touchmove', (event)=>{ if (event.pageY < 0) { zoomLevel /= 1.1; // zoom out by 10% } else if (event.pageY > 0) { zoomLevel *= 1.1; // zoom in by 10% } if (zoomLevel < 1) { zoomLevel = 1; } else if (zoomLevel > 5) { zoomLevel = 5; } drawImage(); }) function drawImage() { ctx.clearRect(0, 0, canvasWidth, canvasHeight); // draw zoom area const imgWidth = img.width * zoomLevel; const imgHeight = img.height * zoomLevel; const imgX = canvasWidth / 2 - imgWidth / 2; const imgY = canvasHeight / 2 - imgHeight / 2; ctx.drawImage(img, imgX, imgY, imgWidth, imgHeight); }

P粉996763314
P粉996763314

Antworte allen (1)
P粉818088880

要获取Delta Y,请使用以下代码来解决它,该代码存储触摸位置。

let zoomLevel = 1; document.addEventListener('touchstart', (event) => { y = event.touches[0].clientY; }); document.addEventListener('touchmove', (event) => { const deltaY = event.touches[0].clientY - y; y = event.touches[0].clientY; zoomLevel = Math.min(5, Math.max(1, zoomLevel + deltaY * 0.01)); drawImage(); });
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!