Mai 2011
20
Freitag

Wundervolle Sachen sind mit CSS3 möglich! Ganz ohne Grafik ist diese Datumsanzeige entstanden, die auch hier im Blog Verwendung findet.

Das HTML-Gerüst ist ganz simpel:

<div class="datebox">
   <div class="dateboxhead">Mai 2011</div>
   <div class="dateboxdays">20</div>
   <div class="dateboxday">Freitag</div>
</div>

Als erstes definieren wir die äußere Box.

Die neue CSS-Eigenschaft box-shadow ist folgendermaßen aufgebaut:

Die erste Zahl definiert den horizontalen Abstand, eine positive Zahl lagert den Schatten nach links, eine negative nach rechts.

Die zweite Zahl definiert den vertikalen Abstand, eine positive Zahl lagert den Schatten nach unten, eine negative nach oben.

Optional ist die dritte Variable, die den Verblassungseffekt (Blur) steuert, je höher der Wert, umso mehr verblasst der Schatten.

Der ebenfalls optionale vierte Wert bestimmt die Entfernung (Spread), ist er positiv, strahlt der Schatten in jede Richtung aus, eine negative Zahl lässt den Schatten nach innen fallen.

.datebox {
         width:86px;
         height:94px;
         text-align:center;
         box-shadow:4px 4px 4px #999; /* Schatten der Box: links unten blur*/
         border-left:1px solid #ccc; 
         border-right:1px solid #ccc;
}

Danach gehts an den farbigen Kopfbereich. Der schicke Farbverlauf stammt übrigens vom Ultimate CSS Gradient Generator , ein sehr nützliches Tool. Das Ringbuch basteln wir uns durch einen ganz simplen Trick: eine gepunktete Linie.

.dateboxhead {
        font-family:sans-serif;
        font-weight:bold;
        color:#ddd;
        padding:3px;
        border:1px solid #23538a;
        box-shadow:0px 2px 2px #666; /* Schatten des Headers unten */
        text-shadow: 0px 1px 1px #333; /* Gravur  */
        border-top:3px dotted #ccc; /* Ringbuch-Effekt*/
}

Hier ein kleines Demo und der komplette Source

(getestet bisher nur in Firefox 4.0, Chrome 11)

geschrieben von daniel (letzte Änderung: 20. Mai 2011) / Schlagwort:

Mai 2011
18
Mittwoch

Der Entwickler von Quemu Fabrice Bellard hat einen x86-Emulator vorgelegt, der per Javascript im Browser läuft und mit einem 2.6.20 Linux Kernel bootet.

Wie lange braucht dein Browser um Linux zu booten?

Die Demo ist lauffähig in Chrome11 und ab Firefox4 und hier findet sich die Technik dahinter.

geschrieben von daniel (letzte Änderung: 18. Mai 2011) / Schlagwort:

April 2011
10
Sonntag

Hier ein kleines Demo und der komplette Source

(getestet bisher nur in Firefox 3.5 und 4)

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

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) / Schlagwort: