SlideShare una empresa de Scribd logo
1 de 24
hands-on Talita pagani – dc/ufscar - @talitapagani		              SETEMBRO/2011
Atividade prática To-dolist Explorar os conceitos de Novos campos de formulários Validação de formulários Local Storage DragandDrop nativo 2 De 24
Atividade prática 3 De 24
Atividade prática Copie o template para o seu computador e descompacte Abra o arquivo index.html no Notepad++ 4 De 24
Atividade prática 5 De 24 Header e Nav Section Section Aside Footer
Atividade Prática <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>  6 De 24
Atividade Prática Adicionando os campos de formulário: Substituir: [INPUT DESCRICAO] Por: <input type="text" id="desc" name="desc" placeholder="Descreva a tarefa" required/> Substituir: [INPUT DATA] Por: <input type="date" id="data" name="data" min="2011-09-01" max="2011-09-30" value="2011-09-01" required /> 7 De 24
Atividade Prática Adicionando os campos de formulário: Substituir: [INPUT PROGRESSO] Por: <input type="range" id="progresso" name="progresso" min="0" max="100" step="5" value="0" /> Substituir: [OUTPUT PROGRESSO] Por: <output id="progressValue" name="progressValue">0</output> 8 De 24
Atividade Prática Adicionando a função de armazenamento local: Substituir: [LOCALSTORAGE DESCRICAO] Por: localStorage.setItem( "task-desc-"+i, $("#desc").val() ); Substituir: [LOCALSTORAGE DATA] Por: localStorage.setItem( "task-date-"+i, $("#data").val() ); Substituir: [LOCALSTORAGE PROGRESSO] Por: localStorage.setItem( "task-progress-"+i, $("#progresso").val() ); 9 De 24
Atividade Prática Adicionando a função de remoção do armazenamento local: Substituir: [LOCALSTORAGE REMOVE DESCRICAO] Por: localStorage.removeItem("task-desc-"+id); Substituir: [LOCALSTORAGE REMOVE DATA] Por: localStorage.removeItem("task-date-"+id); Substituir: [LOCALSTORAGE REMOVE PROGRESSO] Por: localStorage.removeItem("task-progress-"+id); 10 De 24
Atividade Prática Como é inserido/retornado os itens da to-dolist $("#tasks").append("<div id='task-"+i+"' class='row' draggable='true'><spanclass='desc'>"+localStorage.getItem("task-desc-"+i)+"</span> <spanclass='data'>"+localStorage.getItem("task-date-"+i)+"</span> <spanclass='progress'><progressvalue='"+localStorage.getItem("task-progress-"+i)+"' max='100'> <span id='taskProgress-"+i+"'>"+localStorage.getItem("task-progress-"+i)+"</span>% </progress></span> <spanclass='actions'><a href='#' class='remover'>remover</a></span></div>"); 11 De 24
Atividade Prática Entendendo as funções do draganddrop Eventos Dragstart Drag Dragenter Dragleave Dragover Drop Dragend 12 De 24
Atividade Prática varrows = document.querySelectorAll('#tasks .row'); vardragSrcEl_ = null; functionhandleDragStart(e) { e.dataTransfer.effectAllowed = 'move'; e.dataTransfer.setData('text/html', this.innerHTML); dragSrcEl_ = this; this.style.opacity = '0.4'; 	// this/e.targetisthesource node. 	$(this).addClass('moving'); } 13 De 24
Atividade Prática functionhandleDragOver(e) { if(e.preventDefault) { e.preventDefault(); } e.dataTransfer.dropEffect= 'move'; return false; } 14 De 24
Atividade Prática functionhandleDragEnter(e) { 	$(this).addClass('over'); } functionhandleDragLeave(e) { 	$(this).removeClass('over'); } 15 De 24
Atividade Prática functionhandleDrop(e) { if(e.stopPropagation) { e.stopPropagation(); } if (dragSrcEl_ != this) { dragSrcEl_.innerHTML = this.innerHTML; this.innerHTML= e.dataTransfer.getData('text/html'); } returnfalse; } 16 De 24
Atividade Prática functionhandleDragEnd(e) { this.style.opacity= '1'; [].forEach.call(rows, function(row) { 		$(row).removeClass('over'); 		$(row).removeClass('moving'); }); } 17 De 24
Atividade Prática [].forEach.call(rows, function(row) { row.setAttribute('draggable', 'true');   row.addEventListener('dragstart', handleDragStart, false); row.addEventListener('dragenter', handleDragEnter, false); row.addEventListener('dragover', handleDragOver, false); row.addEventListener('dragleave', handleDragLeave, false); row.addEventListener('drop', handleDrop, false); row.addEventListener('dragend', handleDragEnd, false); }); 18 De 24
Mais tutoriais Desenvolvendo um layout completohttp://line25.com/tutorials/coding-up-a-web-design-concept-into-html-css Criar uma página de erro 404 animadahttp://tutorialzine.com/2010/08/animated-404-not-found-page-css-jquery/ Exemplo simples de canvashttp://sixrevisions.com/html/bouncing-a-ball-around-with-html5-and-javascript/ 19 De 24
Referências http://www.w3.org/html/logo/ http://maujorsvg.com.br/ http://www.tableless.com.br/html5-diff http://www.tableless.com.br/contedo-flash-e-html http://www.slideshare.net/1Marc/html5-essentials http://www.slideshare.net/robhawkes/html5-canvas-the-future-of-graphics-on-the-web http://www.tableless.com.br/html5-estrutura-semantica 20 De 24
Referências http://www.slideshare.net/edu_agni/css3-seu-desenho-vai-virar-cdigo-e-agora http://tableless.com.br/html5/ http://www.tableless.com.br/afinal-o-que-muda-com-o-html-5 http://www.tableless.com.br/html-5-novos-elementos-e-atributos http://www.tableless.com.br/html5-brevissima-introducao 21 De 24
Referências http://planetoftheweb.com/components/promos.php?id=556 http://playground.html5rocks.com http://www.alistapart.com/articles/previewofhtml5/ http://html5doctor.com http://html5demos.com/ http://www.canvasdemos.com 22 De 24
Referências http://www.html5rocks.com/en/tutorials/dnd/basics/ http://www.html5rocks.com/en/mobile/workingoffthegrid.html http://www.html5rocks.com/en/tutorials/forms/html5forms/ http://www.net-kit.com/html5-css3-layout-tutorials-and-templates/ http://nithinbekal.com/2010/a-simple-to-do-list-app-using-html5-and-local-storage/ 23 De 24
www.talitapagani.com | talita.cpb@gmail.com | www.twitter.com/talitapagani Obrigada! 24 De 24

Más contenido relacionado

Similar a Hands-on tutorial for building a to-do list app with HTML5

ASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoVinicius Rocha
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebBruno Borges
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontMichel Ribeiro
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Luis Gustavo Almeida
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBLuciano Borges
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da WebJose Berardo
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework JavascriptMarcio Romu
 
TDC 2015 - Execução em Background e Live Tiles em Universal Apps
TDC 2015 - Execução em Background e Live Tiles em Universal AppsTDC 2015 - Execução em Background e Live Tiles em Universal Apps
TDC 2015 - Execução em Background e Live Tiles em Universal AppsDiego Castro
 

Similar a Hands-on tutorial for building a to-do list app with HTML5 (20)

ASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoASP.NET MVC Mini Curso
ASP.NET MVC Mini Curso
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento Web
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da Web
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
Facelets
FaceletsFacelets
Facelets
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Html dom, eventos, jquery
Html dom, eventos, jqueryHtml dom, eventos, jquery
Html dom, eventos, jquery
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework Javascript
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
TDC 2015 - Execução em Background e Live Tiles em Universal Apps
TDC 2015 - Execução em Background e Live Tiles em Universal AppsTDC 2015 - Execução em Background e Live Tiles em Universal Apps
TDC 2015 - Execução em Background e Live Tiles em Universal Apps
 
Tutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e UsoTutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e Uso
 

Más de Talita Pagani

Design acessível para autistas
Design acessível para autistasDesign acessível para autistas
Design acessível para autistasTalita Pagani
 
Projetando para a neurodiversidade
Projetando para a neurodiversidadeProjetando para a neurodiversidade
Projetando para a neurodiversidadeTalita Pagani
 
Guia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em AutismoGuia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em AutismoTalita Pagani
 
Projetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismoProjetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismoTalita Pagani
 
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...Talita Pagani
 
Projeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação AlternativaProjeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação AlternativaTalita Pagani
 
Carreira não linear em TI
Carreira não linear em TICarreira não linear em TI
Carreira não linear em TITalita Pagani
 
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em AutistasAcessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em AutistasTalita Pagani
 
Acessibilidade Web Cognitiva
Acessibilidade Web CognitivaAcessibilidade Web Cognitiva
Acessibilidade Web CognitivaTalita Pagani
 
Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Talita Pagani
 
Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016Talita Pagani
 
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe dissoCaro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe dissoTalita Pagani
 
Projetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com AutismoProjetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com AutismoTalita Pagani
 
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...Talita Pagani
 
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...Talita Pagani
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endTalita Pagani
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPTalita Pagani
 
Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015Talita Pagani
 
Introdução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso DesignIntrodução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso DesignTalita Pagani
 
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web PerformanceMedindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web PerformanceTalita Pagani
 

Más de Talita Pagani (20)

Design acessível para autistas
Design acessível para autistasDesign acessível para autistas
Design acessível para autistas
 
Projetando para a neurodiversidade
Projetando para a neurodiversidadeProjetando para a neurodiversidade
Projetando para a neurodiversidade
 
Guia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em AutismoGuia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em Autismo
 
Projetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismoProjetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismo
 
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
 
Projeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação AlternativaProjeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação Alternativa
 
Carreira não linear em TI
Carreira não linear em TICarreira não linear em TI
Carreira não linear em TI
 
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em AutistasAcessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
 
Acessibilidade Web Cognitiva
Acessibilidade Web CognitivaAcessibilidade Web Cognitiva
Acessibilidade Web Cognitiva
 
Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016
 
Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016
 
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe dissoCaro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
 
Projetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com AutismoProjetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com Autismo
 
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
 
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-end
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SP
 
Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015
 
Introdução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso DesignIntrodução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso Design
 
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web PerformanceMedindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
 

Hands-on tutorial for building a to-do list app with HTML5

  • 1. hands-on Talita pagani – dc/ufscar - @talitapagani SETEMBRO/2011
  • 2. Atividade prática To-dolist Explorar os conceitos de Novos campos de formulários Validação de formulários Local Storage DragandDrop nativo 2 De 24
  • 4. Atividade prática Copie o template para o seu computador e descompacte Abra o arquivo index.html no Notepad++ 4 De 24
  • 5. Atividade prática 5 De 24 Header e Nav Section Section Aside Footer
  • 6. Atividade Prática <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 6 De 24
  • 7. Atividade Prática Adicionando os campos de formulário: Substituir: [INPUT DESCRICAO] Por: <input type="text" id="desc" name="desc" placeholder="Descreva a tarefa" required/> Substituir: [INPUT DATA] Por: <input type="date" id="data" name="data" min="2011-09-01" max="2011-09-30" value="2011-09-01" required /> 7 De 24
  • 8. Atividade Prática Adicionando os campos de formulário: Substituir: [INPUT PROGRESSO] Por: <input type="range" id="progresso" name="progresso" min="0" max="100" step="5" value="0" /> Substituir: [OUTPUT PROGRESSO] Por: <output id="progressValue" name="progressValue">0</output> 8 De 24
  • 9. Atividade Prática Adicionando a função de armazenamento local: Substituir: [LOCALSTORAGE DESCRICAO] Por: localStorage.setItem( "task-desc-"+i, $("#desc").val() ); Substituir: [LOCALSTORAGE DATA] Por: localStorage.setItem( "task-date-"+i, $("#data").val() ); Substituir: [LOCALSTORAGE PROGRESSO] Por: localStorage.setItem( "task-progress-"+i, $("#progresso").val() ); 9 De 24
  • 10. Atividade Prática Adicionando a função de remoção do armazenamento local: Substituir: [LOCALSTORAGE REMOVE DESCRICAO] Por: localStorage.removeItem("task-desc-"+id); Substituir: [LOCALSTORAGE REMOVE DATA] Por: localStorage.removeItem("task-date-"+id); Substituir: [LOCALSTORAGE REMOVE PROGRESSO] Por: localStorage.removeItem("task-progress-"+id); 10 De 24
  • 11. Atividade Prática Como é inserido/retornado os itens da to-dolist $("#tasks").append("<div id='task-"+i+"' class='row' draggable='true'><spanclass='desc'>"+localStorage.getItem("task-desc-"+i)+"</span> <spanclass='data'>"+localStorage.getItem("task-date-"+i)+"</span> <spanclass='progress'><progressvalue='"+localStorage.getItem("task-progress-"+i)+"' max='100'> <span id='taskProgress-"+i+"'>"+localStorage.getItem("task-progress-"+i)+"</span>% </progress></span> <spanclass='actions'><a href='#' class='remover'>remover</a></span></div>"); 11 De 24
  • 12. Atividade Prática Entendendo as funções do draganddrop Eventos Dragstart Drag Dragenter Dragleave Dragover Drop Dragend 12 De 24
  • 13. Atividade Prática varrows = document.querySelectorAll('#tasks .row'); vardragSrcEl_ = null; functionhandleDragStart(e) { e.dataTransfer.effectAllowed = 'move'; e.dataTransfer.setData('text/html', this.innerHTML); dragSrcEl_ = this; this.style.opacity = '0.4'; // this/e.targetisthesource node. $(this).addClass('moving'); } 13 De 24
  • 14. Atividade Prática functionhandleDragOver(e) { if(e.preventDefault) { e.preventDefault(); } e.dataTransfer.dropEffect= 'move'; return false; } 14 De 24
  • 15. Atividade Prática functionhandleDragEnter(e) { $(this).addClass('over'); } functionhandleDragLeave(e) { $(this).removeClass('over'); } 15 De 24
  • 16. Atividade Prática functionhandleDrop(e) { if(e.stopPropagation) { e.stopPropagation(); } if (dragSrcEl_ != this) { dragSrcEl_.innerHTML = this.innerHTML; this.innerHTML= e.dataTransfer.getData('text/html'); } returnfalse; } 16 De 24
  • 17. Atividade Prática functionhandleDragEnd(e) { this.style.opacity= '1'; [].forEach.call(rows, function(row) { $(row).removeClass('over'); $(row).removeClass('moving'); }); } 17 De 24
  • 18. Atividade Prática [].forEach.call(rows, function(row) { row.setAttribute('draggable', 'true'); row.addEventListener('dragstart', handleDragStart, false); row.addEventListener('dragenter', handleDragEnter, false); row.addEventListener('dragover', handleDragOver, false); row.addEventListener('dragleave', handleDragLeave, false); row.addEventListener('drop', handleDrop, false); row.addEventListener('dragend', handleDragEnd, false); }); 18 De 24
  • 19. Mais tutoriais Desenvolvendo um layout completohttp://line25.com/tutorials/coding-up-a-web-design-concept-into-html-css Criar uma página de erro 404 animadahttp://tutorialzine.com/2010/08/animated-404-not-found-page-css-jquery/ Exemplo simples de canvashttp://sixrevisions.com/html/bouncing-a-ball-around-with-html5-and-javascript/ 19 De 24
  • 20. Referências http://www.w3.org/html/logo/ http://maujorsvg.com.br/ http://www.tableless.com.br/html5-diff http://www.tableless.com.br/contedo-flash-e-html http://www.slideshare.net/1Marc/html5-essentials http://www.slideshare.net/robhawkes/html5-canvas-the-future-of-graphics-on-the-web http://www.tableless.com.br/html5-estrutura-semantica 20 De 24
  • 21. Referências http://www.slideshare.net/edu_agni/css3-seu-desenho-vai-virar-cdigo-e-agora http://tableless.com.br/html5/ http://www.tableless.com.br/afinal-o-que-muda-com-o-html-5 http://www.tableless.com.br/html-5-novos-elementos-e-atributos http://www.tableless.com.br/html5-brevissima-introducao 21 De 24
  • 22. Referências http://planetoftheweb.com/components/promos.php?id=556 http://playground.html5rocks.com http://www.alistapart.com/articles/previewofhtml5/ http://html5doctor.com http://html5demos.com/ http://www.canvasdemos.com 22 De 24
  • 23. Referências http://www.html5rocks.com/en/tutorials/dnd/basics/ http://www.html5rocks.com/en/mobile/workingoffthegrid.html http://www.html5rocks.com/en/tutorials/forms/html5forms/ http://www.net-kit.com/html5-css3-layout-tutorials-and-templates/ http://nithinbekal.com/2010/a-simple-to-do-list-app-using-html5-and-local-storage/ 23 De 24
  • 24. www.talitapagani.com | talita.cpb@gmail.com | www.twitter.com/talitapagani Obrigada! 24 De 24