von Jann Wickert
am Beispiel eines Videos
var videoElement = document.getElementById("myvideo"); // click handler // Funktion, die aufgerufen wird, sobald auf das Element geklickt wird videoElement.onclick = function() { // Element bereits im Fullscreen? if(document.webkitFullscreenElement){ //Fullscreen verlassen document.webkitExitFullscreen(); }else{ //Element in den Fullscreen bringen videoElement.webkitRequestFullscreen(); } }
<canvas id="mycanvas" width="500" height="500" style="border:1px solid #000000;"> Canvas element not supported. </canvas>
var canvas; var ctx; var lastPoint=null; function init() { // Den "Malbereich" in einer Variable legen var touchzone = document.getElementById("mycanvas"); // Die Events für's malen implementieren touchzone.addEventListener("touchmove", draw, false); touchzone.addEventListener("touchend", end, false); // benötigt zum malen ctx = touchzone.getContext("2d"); } // wird ausgeführt sobald das touchmove-Event ausgelöst wird function draw(e) { e.preventDefault(); //verhindert das Standardmässige scrollen auf der gesamten Seite if(lastPoint!=null) { //Logik zum malen. Irrelevant für Touch Events ctx.beginPath(); ctx.moveTo(lastPoint.x, lastPoint.y); ctx.lineTo(e.touches[0].pageX, e.touches[0].pageY); ctx.stroke(); } lastPoint = {x:e.touches[0].pageX, y:e.touches[0].pageY}; //setzt in lastpt die x- und y-Koordinate des Fingers (hier 0 als erster Finger --> nur single touch-Unterstützung) } // wird ausgelöst sobald der Finger wieder gehoben wird (touchend-Event) function end(e) { e.preventDefault(); // Terminate touch path lastPoint=null; }
Die API unterscheidet drei Interfaces
Jeder Touch (Berührung) beschreibt einen Berührungspunkt mit dem Display. Er enthält folgende Attribute:
Das TouchEvent Interface definiert folgende Events
interface TouchEvent : UIEvent { readonly attribute TouchList touches; readonly attribute TouchList targetTouches; readonly attribute TouchList changedTouches; readonly attribute boolean altKey; readonly attribute boolean metaKey; readonly attribute boolean ctrlKey; readonly attribute boolean shiftKey; };
Jedes Event hat drei Listen, die Touches auflisten