März 2011
28
Montag

Das erste HTML5-Demo zeigt, wie man ein Bild unter einen Farbverlauf legt und per Maus die Bewegung gesteuert wird. Als erstes wird der Canvas eingerichtet, in Javascript holt man sich als Variable Canvas und Body.

var canvas = document.getElementsByTagName('canvas')[0],
    body = document.getElementsByTagName('body')[0],
    width = window.innerWidth, //fensterbreite
    height = window.innerHeight; //fensterhöhe

Den Canvas auf die Größe des Bildes erweitern und das Bild zeichnen.

 img = new Image();
   img.src = ‘/img/logo.jpg’;
   canvas.width = width;
   canvas.height = height;

ctx = canvas.getContext(‘2d’); ctx.clearRect(0, 0, width, height); ctx.save(); ctx.drawImage(img,0,0,width,height); ctx.save();

Das Mausevent abfangen und Variablen setzen.

  body.onmousemove = function (event) {
    var x = event.clientX, 
        y = event.clientY,
        rx = img.width * x / width,
        ry = img.width * y / width;
        ctx.globalAlpha = 0.5;
    var xc = ~~(256 * x / width);
    var yc = ~~(256 * y / height);

Der Farbverlauf wird erzeugt, erst das Bild gezeichnet und danach von dem Verlauf überlagert.

grad = ctx.createRadialGradient(rx, ry, 0, rx, ry, 600); 
    grad.addColorStop(0, 'transparent');
    grad.addColorStop(1, ['rgb(', xc, ', ', (255 - xc), ', ', yc, ')'].join(''));
    ctx.fillStyle = grad;
    ctx.drawImage(img,0,0,width,height);
    ctx.fillRect(0,0,width,height);
  };
}
</script>
</body>
</html>

Hier ein kleines Demo und der komplette Source

(getestet bisher nur in Firefox 3.5)

geschrieben von daniel (letzte Änderung: 10. April 2011, 19:28) / Schlagwort:


Kommentare

---