Dec 132011
 

Questo post nasce da una esigenza che ho avuto: un semplice disegno che reagisse a delle modifiche di valori tramite delle select di un form. La soluzione, per vari motivi, non poteva essere flash e quindi mi sono orientato a usare l’ogetto canvas di html5. La compatibilità con i vari ie è garantita dalla libreria excanvas.js

Quindi ho creato le mie tre select che raffigurano una linea vertivale, una linea obliqua e l’angolo; l’html della pagina è completato dal nostro canvas.

Al caricamento della pagina, via jquery, associo l’onchange delle select con la modifica al disegno mediante la chiamata alla funzone disegna.

La funzione disegna, innanzitutto si predispone e “aggancia” il canvas pronto per il disegno 2D:


var canvas = document.getElementById(“myCanvas”);
var context = canvas.getContext(“2d”);

La parte successiva è un po’ noiosa e consiste nella lettura del form e nel calcolo dei valori necessari al nostro disegno: difatti il canvas è un piano cartesiano e per disgnare delle lineee con punto di partenza e di arrivo bisogn far ricorso a un po’ di trigonometria. Ma la parte che più interessa è quella del disegno vero e prorpio:


context.beginPath();
context.moveTo(290, hfinestra);
context.lineTo(290, 45);

Mi posiziono in un punto fisso sull’asse delle x e la cui altezza è determinata dalla select della linea verticale e traccio una riga fino a un punto fisso di congiunzione delle due righe


context.lineTo(coseno, seno);
context.lineWidth = 10;
context.strokeStyle = “black”;

La seconda linea va da dove sono arrivato fino al puntodeterminato dal coseno e al seno calcolati in base all’angolo e alla lunghezza della linea verticale. Setto spessore e colore della linea, infine la disegno:


context.stroke();

La pagina contiene anche un pulsante che chiama una funzione per pulire

L’esempio completo

Dec 122011
 

Fra le maggiorni novità di html5 c’è un diverso approcio alla grafica, da adesso in avanti flash avrà vita durissima, per esempio perché sarà possibile inserire della grafica vettoriale via svg, cioè xml, con totale controllo del codice, senza ricorrere a plug-in. Un primissimo esempio è dato da un abbozzo di grafico a barre realizzato con svg appunto.

Il rislutato finale sarà decisamente “acerbo” ma l’idea è vedere quanto sia banale inserire svg e utilizzare gli elementi più semplici.

E infatti per avere svg nelle pagine non c’è niente da fare asta inserirlo:


<body>
<h2>HTML5 SVG Un’idea di grafico</h2>
<svg id=”svgelem” height=”200″ xmlns=”http://www.w3.org/2000/svg”>
<rect id=”greenrect” width=”250″ height=”20″ fill=”green” x=”0″ y=”0″ />
<rect id=”blurect” width=”200″ height=”20″ fill=”blue” x=”0″ y=”30″ />
<rect id=”redrect” width=”300″ height=”20″ fill=”red” x=”0″ y=”60″ />
</svg>
</body>

si visualizzeranno 3 semplici rettangoli uno a finaco a l’altro, la posizione è determinata dalle coordinate x e y, width ed height sono le dimensioni fill lo colora.

Il supporto dei browser? Assicurato da tutti i borwser moderni, internet explorer nelle versioni precedenti alla 9 dovrebbe aver bisogno del plug-in svg viewer.

L’esempio

 Posted by at 12:52 pm  Tagged with:
Nov 302011
 

Una delle novità proposte da html5 è l’introduzione del local storage, ovvero di una serie di specifiche che permettono un netto avanzamento rispetto ai cookie troppo limitati per essere effettivamente utili.

Costruiamo quindi una semplice pagina html5 che ci permetta di settare e leggere una copia key:value

Per prima cosa l’html, un form dove inputare un nome e un bottone per chiamare la funzione che memorizzerà il valore:


<label>Nome:</label><br>
<input type=”text” id=”nome”>
<input type=”button” value=”Imposta nome” onclick=”setNome()”>

La funzione le gee il valore e lo setta nel nostro localStorage:


function setNome() {
var nome = document.getElementById(“nome”).value;
localStorage.setItem(“Nome”,nome);
}

Possima già verificare il corretto funzionamento usando google chrome e da strumenti–>strumenti per sviluppatori

sotto Resources e local storage ci sarà la nostra copia. analogoa verifica la si può fare con firefox e firebug dal pannelo dom possiamo verificare localStorage.

Passiamo ora alla lettura dell’informazione memorizzata con due funzioni js:


function showStorage() {
var nome = localStorage.getItem(“Nome”);
if (nome != null) { document.getElementById(“mostra_nome”).innerHTML = nome; }
showElem();
}

function showElem(){
var p = document.createElement(“p”);
for(var i = 0; i < localStorage.length; i++) {
p.innerHTML=localStorage.key(i)+”= “+localStorage.getItem(localStorage.key(i));
}
document.getElementById(“ctrl_storage”).appendChild(p);
}

La prima funzione verifica la presenza del valore, la seconda stampa tutti i valori contenuti in locale.

L’esempio completo

Nov 092011
 

Dove sono? E’ possibile visualizzare un marker che mi indica dove mitrovo su una mappa.

Dipende in realtà da quale browser sto usando e dalla modalità di accesso alla rete.

In questo momento (novembre 2011) la localizzazione che si base su html5 funzionerà su chrome, firefox, safari. Grande assente ie. E questo ovviamente allo stato attuale limita fortemente l’uso, se però la nostra applicazione è per un supporto mobile questo problema non si pone e oltretutto è ragionevole pensare di essere posizionati con la precisione del gps eliminando i margini di errori legati all’accesso a internet: chi proverà l’esempio si accorgerà che se accede con un normale accesso alla rete con ip dinamico ci sarà un margine di errore magari anche significativo, questo dipende da dove viene identificato l’ip.

Per il codice vedere la sorgente dell’esempio