Načrtovanje in razvoj spletnih aplikacij

Canvas

Najbolj zanimiva novost HTML5 je oznaka canvas. To je element, ki si ga lahko predstavljamo kot pravokotno resolucijsko odvisno bitno platno. Omogoča dinamično risanje oziroma prikazovanje grafike na spletni strani, za kar pa je potrebno nekaj programerskega znanja JavaScript.

canvas podpirajo vsi moderni brskalniki. Starejše različice Internet Explorerja canvas ne podpirajo. Pomagamo si lahko z rešitvijo ExplorerCanvas. To je JavaScript datoteka, ki jo vključimo v spletno stran na naslednji način:

<head>
   <!--[if IE]><script src="excanvas.js"></script><![endif]-->
</head>

canvas so razvili v podjetju Apple in ga tudi zaščitili. Vsem razvijalcem brskalnikov je bil všeč, zato so ga vsi vgradili v svoje brskalnike in kmalu je postal predpisan kot odprtokodna W3C specifikacija. Je način neposrednega prikaza grafike, ki ne potrebuje vtičnikov. Če hočemo na spletni vsebini prikazovati dinamično grafiko, je potrebno dinamičnost zagotoviti preko strežnika, kar je počasno, ali uporabljati vtičnike, kot naprimer Flash ali Javo. canvas pa je vmesnik za neposredno prikazovanje grafike, je neke vrste navidezna ploskev, na katero rišemo z JavaScriptom.

canvas lahko uporabimo za prikazovanje grafičnih elementov kot so:

  • Enostavni diagrami
  • Elegantne uporabniške vmesnike
  • Animacije in igre
  • Razpredelnice in grafe
  • Vgrajene spletne risalne aplikacije
  • ...

Risalna orodja, ki so na voljo:

  • Pravokotniki
  • Krogi in krožni loki
  • Črte in sledi (paths)
  • Bezierove in kvadratne krivulje
  • Besedilo
  • Slike

Pri tem lahko uporabimo tudi naslednje efekte:

  • Enostavne oblike (funkcije za izris)
  • Senčenja
  • Linearni in radialni prelivi
  • Alfa prosojnost
  • Sestavljanja

Transformacije:

  • Skaliranje
  • Rotacije
  • Translacije
  • Transformiranje matrik

Element canvas je torej grafični vsebnik, ki mu lahko določimo širino ter višino ter ID za objekt, da ga lahko kasneje preko vmestnika DOM API najdemo v kodi JavaScript. Realno na canvas gledamo kot dvodimenzionalno koordinatno mrežo. Koordinatno izhodišče (0,0) leži na zgornjem levem kotu canvas mreže.

Na x osi se povečujejo vrednosti v desno smer, na y osi pa se povečujejo vrednosti proti dnu canvas mreže. Če bi radi kaj prikazali na tem platnu, moramo uporabiti JavaScript vmesnik 2D context API. canvas značko najdemo z metodo getElementById. Nato pa še določimo referenco na objekt z metodo getContext('2d').

Vstavljenje značke canvas na spletno stran je podobno, kot dodajanje drugih oznak HTML. Če uporabimo skripto, lahko narišemo na canvas rdeč kvadrat na naslednji način:

Primer:

<canvas id="example" width="200" height="200">   
   To besedilo se prikaže v primeru, da vaš brskalnik ne podpira HTML5 Canvas. 
</canvas> 
<script>   
   var example = document.getElementById('example');   
   var context = example.getContext('2d');
   context.strokeStyle = "gray";    
   context.lineWidth = 1;   
   context.strokeRect(0,0, 200, 200);   
   context.fillStyle = "rgb(255,0,0)";   
   context.fillRect(30, 30, 50, 50); 
</script>
To besedilo se prikaže v primeru, da vaš brskalnik ne podpira HTML5 Canvas.