Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| kurse:ef05a-2021:js:projekte:mouseevents [2022/03/23 06:22] – Ivo Blöchliger | kurse:ef05a-2021:js:projekte:mouseevents [2022/03/23 06:24] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Maus-Interaktion ====== | ||
| + | * Dinge animieren, siehe [[.: | ||
| + | * Mouse-Events: | ||
| + | * Achtung: Es nicht garantiert, dass z.B. auf ein '' | ||
| + | * Es gibt entsprechende Touch-Events: | ||
| + | * Die Koordinatenumrechnung ist nicht offensichtlich. Folgender Code hat bei mir funktioniert (sowohl am PC wie auf dem Smartphone): | ||
| + | <code javascript> | ||
| + | // from https:// | ||
| + | function findPosition(oElement) { | ||
| + | if(typeof( oElement.offsetParent ) != " | ||
| + | for(var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent) { | ||
| + | posX += oElement.offsetLeft; | ||
| + | posY += oElement.offsetTop; | ||
| + | } | ||
| + | return [ posX, posY ]; | ||
| + | } else { | ||
| + | return [ oElement.x, oElement.y ]; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function handleMove(evt) { | ||
| + | evt.preventDefault(); | ||
| + | let touches = evt.changedTouches; | ||
| + | let x,y; | ||
| + | let myElement = document.getElementById(" | ||
| + | |||
| + | if (touches) { | ||
| + | let padcoords = findPosition(myElement); | ||
| + | x = touches[0].pageX-padcoords[0]; | ||
| + | y = touches[0].pageY-padcoords[1]; | ||
| + | } else { | ||
| + | let bb = myElement.getBoundingClientRect(); | ||
| + | x = evt.clientX - bb.x; | ||
| + | y = evt.clientY - bb.y; | ||
| + | } | ||
| + | // x,y sind die Koordinaten relativ zum Element | ||
| + | if (evt.buttons !== 0 && evt.type!==" | ||
| + | // Tu was | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function setupTouches(el) { | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | el.addEventListener(" | ||
| + | } | ||
| + | </ | ||