SlideShare uma empresa Scribd logo
Victor Adriel
 Victor Adriel de J. Oliveira
 Associação Empresa Júnior de Computação:
◦ 2008 – Trainee
◦ 2009 – Diretor Administrativo/Financeiro
◦ 2010 – Conselheiro Fiscal
 Programação Web:
[HTML/CSS (tableless), jQuery, PHP, Smarty]
 Contato: victorajoliveira@gmail.com
 blogvictoradriel.blogspot.com
 O que é
 Sintaxe
◦ Seletores
◦ Manipulação do DOM
◦ CSS
◦ Eventos
◦ Efeitos
◦ Formulários
 jQuery UI
 Práticas
 É uma biblioteca JavaScript disponibilizada
como software livre e aberto, desenvolvida
para mudar a forma de escrever JavaScript.
 “O foco principal da biblioteca jQuery é a
simplicidade. Por que submeter os
desenvolvedores ao martírio de escrever
longos e complexos códigos para criar
simples efeitos?” (John Resig, jQuery in Action)
 22/08/2005
◦ “The premise for the module is as follows: Using
the power of Pseudo-CSS Selectors, bind your
Javascript functions to various HTML elements in
the DOM. Looking at how Behaviour works, I've
never been completely happy - it simply seems too
tedious and verbose for everyday use.” (John Resig)
 14/01/2006
◦ jQuery: New Wave Javascript
 22/08/2005
◦ “The premise for the module is as follows: Using
the power of Pseudo-CSS Selectors, bind your
Javascript functions to various HTML elements in
the DOM. Looking at how Behaviour works, I've
never been completely happy - it simply seems too
tedious and verbose for everyday use.”
 14/01/2006
◦ jQuery: New Wave Javascript
“Jquery is like behaviour that has been sent back from
the future by a secret fucking government lab”
Zombieland
 Utiliza seletores CSS para acessar e manipular
o DOM;
 Alheio às inconsistências de renderização
entre navegadores;
 Extensível;
 Provê interatividade;
 Simplifica tarefas específicas de JavaScript.
 HTML DOM:
◦ O HTML DOM define objetos e propriedades para
todos os elementos HTML, e os métodos (interface)
para acessá-los.
◦ Em outras palavras: o HTML DOM é um padrão para
acesso, atualização, adição ou deleção de
elementos HTML.
 Propriedades do HTML DOM:
◦ x.innerHTML – texto do elemento x
◦ x.nodeName – nome do elemento x
◦ x.nodeValue – valor do elemento x
◦ x.parentNode – pai do elemento x
◦ x.childNodes – filhos do elemento x
◦ x.attributes – atributos do elemento x
 Métodos do HTML DOM:
◦ x.getElementById(id)
 Captura o elemento com um id específico
◦ x.getElementsByTagName(name)
 Captura todos os elementos com o mesmo comando
◦ x.appendChild(node)
 Insere um novo nó filho no elemento x
◦ x.removeChild(node)
 Remove um nó filho do elemento x
 Métodos do HTML DOM:
<html>
<body>
<p id="intro">Hello World!</p>
<script type=“text/javascript”>
txt=document.getElementById("intro").innerHTML;
alert("O texto do paragrafo com o id 'info': " + txt);
</script>
</body>
</html>
 Métodos do HTML DOM:
<html>
<body>
<p id="intro">Hello World!</p>
<script type=“text/javascript”>
txt=document.getElementById("intro").innerHTML;
alert("O texto do paragrafo com o id 'info': " + txt);
</script>
</body>
</html>
Var txt = $(‘#intro’).val();
Com jQuery
 Ir ao site: http://jquery.com
 Fazer download da biblioteca
 Linkar na página HTML:
<head>
<script type=“text/javascript”
src=“/caminho/jquery-vs.js”></script>
</head>
Programação Web com jQuery
Programação Web com jQuery
 Minified
◦ jquery-1.6.4.min.js
◦ Compacto e de leitura difícil
 Uncompressed
◦ jquery-1.6.4.js
◦ Espaço entre cada linha de código e amplamente
comentado.
 JavaScript in-line:
◦ CSS
<style type=“text/css”>
h1 { color:#090; }
</style>
◦ HTML com o JavaScript in-line
<h1 id=“cor”>Cabeçalho muda de cor</h1>
<button type=“button”
onclick=“document.getElementById(‘cor’).style.color
=‘#F00’;”>Vermelha</button>
 Função JavaScript:
<script type=“text/javascript”>
function mudaCor() {
document.getElementById(‘cor’).style.color=‘#F00’;
}
</script>
◦ HTML
<h1 id=“cor”>Cabeçalho muda de cor</h1>
<button type=“button”
onclick=“mudaCor();”>Vermelha</button>
 JavaScript fora da marcação:
<script type=“text/javascript”>
Window.onload = function(){
Document.getElementById(‘btnRed’).onclick =
mudaCor;
}
function mudaCor() {
document.getElementById(‘cor’).style.color=‘#F00’;
}
</script>
 JavaScript fora da marcação:
◦ HTML
<h1 id="cor">Cabeçalho muda de cor</h1>
<button type="button"
id=“btnRed">Vermelha</button>
 jQuery:
<script type="text/javascript"
src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#btnRed").click(function () {
$("#cor").css("color","#FF0000");
});
});
</script>
 Método ready()
◦ No javascript
window.onload = function(){
Do this;
}
◦ No jQuery
$(document).ready(function(){
Do this;
});
 Construtor jQuery
◦ $( )
◦ jQuery( )
 jQuery.noConflict( )
◦ Usa o alias jQuery ou outro de sua preferência
 jQuery adota os seletores CSS 3! #ôPelaDoido
 É necessário rever a terminologia aplicada aos
elementos que compõem a árvore do
documento.
 HTML DOM
 Categorias:
◦ Básicos
◦ De atributo
◦ Hierárquicos
◦ Filtros
 Básicos
 De conteúdo
 Por visibilidade
 De filhos
◦ De formulários
 Básicos
◦ Universal
 $(“*”)
◦ De elemento
 $(“p”)
◦ De múltiplos elementos
 $(“p, h1, img”)
 Básicos
◦ De classe
 $(“.class”)
◦ De ID
 $(“#id”)
 De atributo
 $(‘[nome]’)
 $(‘[nome = “valor”]’)
 $(‘[nome != “valor”]’)
 $(‘[nome ^= “valor”]’)
 $(‘[nome |= “valor”]’)
 De atributo
 $(‘[nome *= “valor”]’)
 $(‘[nome ~= “valor”]’)
 $(‘[nome $= “valor”]’)
 $(‘[nome = “valor”][nome2 = “valor2”]’)
 Hierárquicos
 $(“ancestral descendente”)
 $(“pai > filho”)
 $(“anterior + posterior”)
 $(“elemento ~ irmãos”)
 Atributos gerais
◦ .attr( nomeAtributo )
.attr( nomeAtributo, valor )
Ex: $(‘input’).attr(‘disabled’, ‘disabled’)
◦ .prop( nomePropriedade )
.prop( nomePropriedade, valor )
Ex: $(‘input’).prop({
disabled: true
});
◦ .removeAttr( nomeAtributo )
◦ .removeProp( nomePropriedade )
Ex: $(“input”).removeProp(“checked”);
◦ .val( )
.val( valor )
Ex: $(“input”).val(‘Digite seu nome’);
 Atributos de classe
◦ .addClass( nomeClasse )
◦ .removeClass( [nomeClasse] )
◦ .hasClass( nomeClasse )
◦ .toggleClass( nomeClasse )
.toggleClass( nomeClasse, switch )
.toggleClass( [switch] )
 HTML
<body>
<img src=" http://goo.gl/kQBXL"
alt="Yao Ming" />
<div class="info"></div>
</body>
 jQuery
$(document).ready(function(){
var atrAlt = $('img').attr('alt');
$('div').text(atrAlt );
$('img').attr('title','Você perdeu a
capacitação?');
});
 CSS
<style type=“text/css”>
.info{ color: red; }
.highlight { background: yellow; }
</style>
 jQuery
$('div').removeClass('info');
 jQuery
$('div').removeClass('info').addClass('highlight');
 jQuery
$('div').removeClass('info').addClass('highlight');
var ctd=0;
$('div').click(function( ){
ctd++;
$('div').toggleClass('highlight', ctd % 3 == 0);
});
 Inserção no DOM (Outside)
◦ .after( )
◦ .before( )
Ex: $("p").before("<b>Hello</b>");
◦ .insertAfter( )
◦ .insertBefore( )
Ex: $("p").insertBefore("#smthng");
 Inserção no DOM (Inside)
◦ .append( )
◦ .prepend( )
Ex: $("p").prepend("<b>Hello</b>");
◦ .appendTo( )
◦ .prependTo( )
Ex: $("p").prependTo("#smthng");
 Inserção no DOM (Inside)
◦ .html( )
◦ .text( )
Ex:
◦ $(“div").html(“<button>botão</button>”);
◦ $(“div").text (“<button>botão</button>”);
 Inserção no DOM (Around)
◦ .wrap( )
◦ .wrapAll( )
◦ .wrapInner( )
◦ CSS
div { border: 2px solid blue; }
p { background:yellow; margin:4px; }
◦ HTML
<p>Hello</p>
◦ jQuery
$("p").wrap("<div></div>");
 Remoção no DOM
◦ .unwrap( )
 Remove o pai e coloca o filho no lugar
◦ .empty( )
 Remove conteúdo do elemento
◦ .detach( )
 Remove elementos mas permite recuperá-los
◦ .remove( )
 Remove elementos completamente
 Substituição no DOM
◦ .replaceAll( )
◦ .replaceWith( )
Ex:
◦ $("<b>Paragraph. </b>").replaceAll("p");
◦ $("p").replaceWith("<b>Paragraph. </b>");
 Cópias
◦ .clone( )
 HTML
<label>Colaboradores:</label>
<select class="copy" style="display:block;">
<option value="0">Selecione um...</option>
<option value="1">Ana</option>
<option value="2">João</option>
<option value="3">Maria</option>
</select>
<button id="novoColaborador">More</button>
<button id="removColaborador">Less</button>
 jQuery
$('#novoColaborador').click(function( ){
$('.copy:last').clone( ).appendTo('body');
});
$('#removColaborador').click(function( ){
$('.copy:last').remove( );
});
 Propriedades de estilo
◦ .css( )
Ex:
◦ Var back = $(“div").css("background-color");
◦ $("p").css("color","red");
◦ $( this ).css({"width" : "+=100", "color" : "red"});
 Dimensionamento
◦ .height( ) / .width( )
◦ .innerHeight( ) / .innerWidth( )
◦ .outerHeight( ) / .outerWidth( )
 Dimensionamento
◦ .height( ) / .width( )
◦ .innerHeight( ) / .innerWidth( )
◦ .outerHeight( ) / .outerWidth( )
 Dimensionamento
◦ .height( ) / .width( )
◦ .innerHeight( ) / .innerWidth( )
◦ .outerHeight( ) / .outerWidth( )
 Offset
◦ .offset( )
◦ .position( )
Ex:
var pos = $("p").position( );
alert( pos.left );
◦ .scrollLeft( ) / .scrollTop( )
Ex: $(“div").scrollLeft(300);
 Diferença entre offset e position:
◦ CSS
div { padding: 15px;}
p { margin-left:10px; }
◦ HTML
<div><p>Hello</p></div>
<p></p>
◦ jQuery
var pos = $("p:first").position( );
$("p:last").text( "left: "+ pos.left + ", top: "+
pos.top );
◦ CSS
#box {background: black; color: #fff; width:100px;}
◦ HTML
<div id="box">Click me to grow</div>
◦ jQuery
$("#box").click(function ( ) {
$( this ).css( "width","+=200" );
});
 Eventos do mouse
◦ .click( )
 Ativado com um clique
◦ .dblclick( )
 Ativado com um duplo clique
◦ .hover( )
 Ativado quando o cursor estiver sobre o elemento
◦ .mousemove( )
 Ativado com o movimento do mouse
 Eventos do mouse
◦ .mousedown( ) / .mouseup( )
 Ativado com pressionar/soltar o clique
◦ .mouseenter( ) / .mouseleave( )
 Cursor passa sobre ou deixa o elemento
◦ .mouseover( ) / .mouseout( )
 Cursor passa sobre ou sai dos elementos filhos
◦ .toggle( )
 Ativa funções em cliques alternados
 Vamos usar o jsbin para treinar
<body>
<p>Pressione o mouse aqui.</p>
<script>
$("p").mouseup(function( ){
$(this).append('<span style="color:#F00;">Up.</span>');
}).mousedown(function(){
$(this).append('<span style="color:#00F;">Down.</span>');
});
</script>
</body>
 Eventos do teclado
◦ .focusin( )
 Ativado com o foco no elemento
◦ .focusout( )
 Ativado com a perda do foco no elemento
◦ .keypress( )
 Ativado com o pressionar de qualquer tecla
◦ .keyup( ) / .keydown( )
 Ativado com o pressionar/soltar a tecla
var estado=0;
$(‘body’).keypress(function(tecla){
switch( estado ){
case 0:
if(tecla.which==116){ estado++; } else { estado=0; }
break;
case 1:
if(tecla.which==101){ estado++; } else { estado=0; }
break;
case 2:
if(tecla.which==99){
alert(“ Vc digitou ‘tec’? ”);
} estado=0;
}
});
 Além dos eventos do mouse e teclado vocês
devem estudar mais sobre:
 Event Handler Attachment
 Objetos de eventos
 Eventos do browser
 Carregando o documento
 Agora vamos brincar um pouquinho ^^
 Acesse esse link: http://goo.gl/dLYCO
e baixe o arquivo que vamos usar.
 Vamos incrementar a página usando jQuery
 O que for digitado na caixa de texto deve
aparecer na tela.
 Categorias
◦ Básicos
◦ De opacidade
◦ Corrediços
◦ De customização
 Básicos
◦ .hide( )
◦ .show( )
◦ .toggle( )
 Opacidade
◦ .fadeIn( )
◦ .fadeOut( )
◦ .fadeTo( )
◦ .fadeToggle( )
 Corrediços
◦ .slideDown( )
◦ .slideUp( )
◦ .slideToggle( )
 HTML
<div>
<h3>Titulo 1</h3>
<p>texto 1. Texto, texto e mais texto</p>
</div>
 jQuery
$('p').hide( );
$('h3').click(function( ){
$('p').hide( );
$(this).parent( ).find('p').show( );
});
 HTML
<div>
<h3>Titulo 1</h3>
<p>texto 1. Texto, texto e mais texto</p>
</div>
 jQuery
$('p').hide( );
$('h3').click(function( ){
$('p').hide( );
$(this).parent( ).find('p').show( );
}); Agora teste outros métodos:
.fadeIn( ) e .fadeOut( )
.slideDown( ) e .slideUp( )
 Customização
◦ .animate( )
◦ .delay( )
◦ .stop( )
◦ CSS
div {
background-color:#abc;
width:90px;
height:90px;
margin:5px;
font-size:1px;
}
◦ HTML
<button id="left">&laquo;</button>
<button id="right">&raquo;</button>
<div class="block">x</div>
◦ jQuery
$("#right").click(function( ){
$(".block").animate({"margin-left": "+=200px"}, "slow");
});
$("#left").click(function( ){
$(".block").animate({"margin-left": "-=200px"}, "slow");
});
◦ HTML
<button id="go">elem x</button>
◦ jQuery
$("#go").click(function( ){
$(".block").animate({
width: "70%",
opacity: 0.4,
marginLeft: "0.6in",
fontSize: "5em",
borderWidth: "10px"
}, 1500 );
});
◦ HTML
<button id=“stop">STOP</button>
◦ jQuery
$("#stop").click(function( ){
$(".block").stop( );
});
 Baixe o arquivo: http://goo.gl/eo7MJ
◦ Ajude o Mário a chegar ao outro lado usando o
método animate() do jQuery.
 Seletores para formulários:
◦ :button
◦ :checkbox
◦ :input
◦ :text
◦ :radio
◦ :submit
◦ :reset
◦ :password
◦ :selected
◦ ...
 Seletores para formulários:
◦ :button
◦ :checkbox
◦ :input
◦ :text
◦ :radio
◦ :submit
◦ :reset
◦ :password
◦ :selected
◦ ...
Ex:
$(“input:password”).css(“color”, “#CCC”);
 Eventos relacionados a formulários:
◦ .blur( )
◦ .change( )
◦ .focus( )
◦ .select( )
◦ .submit( )
◦ HTML
<form>
<input type="text" name="busca" />
</form>
◦ jQuery
$("input[name='busca']").val('Busca').css('color','#CCC')
.focus(function( ){
$(this).val('').css('color','#000');
}).blur(function( ){
$(this).val('Busca').css('color','#CCC');
});
 Vamos baixar o formulário e incrementá-lo
usando o jQuery. (http://goo.gl/Feq7L)
 Começaremos analisando o código HTML do
formulário.
// Dicas de preenchimento
$(‘input + span').hide( );
$(".obrigatorio").blur(function( ){
var val = $(this).val( );
if(val == ""){
$(this).next( ).show( );
}else{
$(this).next( ).hide( );
}
});
//Desabilitar campos
$("#nao").change(function( ){
$("input[name='local']").val("")
.attr('disabled','disabled');
});
$("#sim").change(function( ){
$("input[name='local']")
.removeAttr('disabled');
});
//Selecionar todos
$("#all").click(function( ){
if(this.checked){
$(".curso").attr('checked','checked');
}else{
$(".curso").removeAttr('checked');
}
});
//Validar
$("form").submit(function( ) {
var nome = $("input[name='nome']").val( );
var nasc = $("input[name='data']").val( );
var mail = $("input[name='email']").val( );
if(nome == ‘’){
alert("Preencha o campo nome.");
return false;
}
if(mail == ‘’){
alert("Preencha o campo email.");
return false;
}
if((nasc != ‘’)&&(! nasc.match(
/^[0-9]{2}/[0-9]{2}/[0-9]{4}$/))){
alert("Data de nascimento inválida.");
return false;
}
return true;
});
 Provê abstrações para interações e animações
de baixo-nível, efeitos avançados e
ferramentas personalizáveis construídas
sobre a biblioteca jQuery.
 Interações
◦ Draggable
◦ Droppable
◦ Resizable
◦ Selectable
◦ Sortable
 Widgets
◦ Accordion
◦ Autocomplete
◦ Button
◦ Datepicker
◦ Dialog
◦ Progressbar
◦ Slider
◦ Tabs
var nomes= [
"Beatriz Silva",
"Eduardo Dantas",
"Ivan Cezanne",
"Janai Maciel",
"José Adão",
"Newton Costa",
"Thiago Evangelista"];
$( "input[name='nome']" )
.autocomplete({ source: nomes });
 HTML
<div id="dialog" title="Muaahaa">
<p>Cuidado: Vírus! Não feche essa pop-up.</p>
</div>
 jQuery
$( "#dialog" ).dialog();
<div id="tabs">
<ul>
<li><a href="#tabs-1">Um item</a></li>
<li><a href="#tabs-2">Outro</a></li>
<li><a href="#tabs-3">Mais um</a></li>
</ul>
<div id="tabs-1">
<p>Um texto aqui.</p>
</div>
<div id="tabs-2">
<p>Um texto aqui.</p>
</div>
<div id="tabs-3">
<p>Um texto aqui.</p>
<p>Um texto aqui.</p>
</div>
</div> jQuery:
$( "#tabs" ).tabs( );
<div id="accordion">
<h3><a href="#">Um item</a></h3>
<div>
<p>Um texto aki</p>
</div>
<h3><a href="#">Outro</a></h3>
<div>
<p>Um texto aki</p>
</div>
<h3><a href="#">Mais um</a></h3>
<div>
<p>Um texto aki</p>
</div>
</div>
jQuery:
$( "#accordion" ).accordion( );
 http://jquery.com/
 http://ejohn.org/blog/selectors-in-javascript/
 http://bennolan.com/behaviour/
 http://www.w3schools.com/htmldom/default.asp
 jQuery – A Biblioteca do Programador JavaScript, 2008,
Maurício S. Silva, NOVATEC
 Ajax com jQuery – Requisições AJAX com a simplicidade de
jQuery, 2009, Maurício S. Silva, NOVATEC
Anúncio

Recomendados

PDF
Programação Web com jQuery
Victor Adriel Oliveira
 
PDF
jQuery na Prática!
José Alexandre Macedo
 
PDF
Java script aula 06 - dom
Cristiano Pires Martins
 
ODP
Introdução a jQuery
Rodrigo Aramburu
 
PDF
Minicurso de jQuery
André Willik Valenti
 
PDF
JavaScript e JQuery para Webdesigners
Harlley Oliveira
 
PPTX
jQuery na Prática - Cauê Fajoli
Caue Fajoli
 
PPTX
Javascript para CSharpers - Append B - jQuery
Wesley Lemos
 
PPT
CSS & JQquery
ScrumHalf Tool
 
PDF
jQuery Simplificando o JavaScript
Everaldo Wanderlei Uavniczak
 
PPTX
Introdução ao jquery
Yuri Costa
 
PPT
Aprenda jQuery 1.3
Helton Marinho
 
PPTX
PHP robusto com Zend Framework
Jaime Neto
 
PDF
Introdução à JQuery
André Faria Gomes
 
PDF
Workshop Django
Sérgio Santos
 
PPTX
Jquery a technical overview
Alexandre Marreiros
 
PDF
Web 3.0
Miguel Alho
 
PDF
Desenvolvendo para iOS com Cocoa-Touch
Campus Party Brasil
 
PPTX
MiniCurso Jquery - IV SimSis
Thiago Miranda
 
PPTX
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
Ezequiel Bertti
 
KEY
JavaScript: prototipação, closure e encapsulamento
Ricardo Valeriano
 
PDF
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
PPTX
Introdução ao MongoDB
Eng. Carlos Eduardo Ferreiro Corrêa
 
PDF
jQuery
Bruno Cunha
 
PPTX
Persistência com JPA e Hibernate
Fernando Oliveira
 
PDF
JavaScript ninja com jQuery
Reinaldo Junior
 
PPT
J query javascript para seres humanos
nobios
 
KEY
NoSQL e MongoDB - ETEC
Jefferson Queiroz
 
PDF
Working on Non-Conventional User Interfaces
Victor Adriel Oliveira
 
PDF
Acessibilidade em Sistemas para a Web
Victor Adriel Oliveira
 

Mais conteúdo relacionado

Mais procurados (20)

PPT
CSS & JQquery
ScrumHalf Tool
 
PDF
jQuery Simplificando o JavaScript
Everaldo Wanderlei Uavniczak
 
PPTX
Introdução ao jquery
Yuri Costa
 
PPT
Aprenda jQuery 1.3
Helton Marinho
 
PPTX
PHP robusto com Zend Framework
Jaime Neto
 
PDF
Introdução à JQuery
André Faria Gomes
 
PDF
Workshop Django
Sérgio Santos
 
PPTX
Jquery a technical overview
Alexandre Marreiros
 
PDF
Web 3.0
Miguel Alho
 
PDF
Desenvolvendo para iOS com Cocoa-Touch
Campus Party Brasil
 
PPTX
MiniCurso Jquery - IV SimSis
Thiago Miranda
 
PPTX
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
Ezequiel Bertti
 
KEY
JavaScript: prototipação, closure e encapsulamento
Ricardo Valeriano
 
PDF
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
PPTX
Introdução ao MongoDB
Eng. Carlos Eduardo Ferreiro Corrêa
 
PDF
jQuery
Bruno Cunha
 
PPTX
Persistência com JPA e Hibernate
Fernando Oliveira
 
PDF
JavaScript ninja com jQuery
Reinaldo Junior
 
PPT
J query javascript para seres humanos
nobios
 
KEY
NoSQL e MongoDB - ETEC
Jefferson Queiroz
 
CSS & JQquery
ScrumHalf Tool
 
jQuery Simplificando o JavaScript
Everaldo Wanderlei Uavniczak
 
Introdução ao jquery
Yuri Costa
 
Aprenda jQuery 1.3
Helton Marinho
 
PHP robusto com Zend Framework
Jaime Neto
 
Introdução à JQuery
André Faria Gomes
 
Workshop Django
Sérgio Santos
 
Jquery a technical overview
Alexandre Marreiros
 
Web 3.0
Miguel Alho
 
Desenvolvendo para iOS com Cocoa-Touch
Campus Party Brasil
 
MiniCurso Jquery - IV SimSis
Thiago Miranda
 
MIRA - Um framework Javascript para construção de interfaces adaptativas em a...
Ezequiel Bertti
 
JavaScript: prototipação, closure e encapsulamento
Ricardo Valeriano
 
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
Introdução ao MongoDB
Eng. Carlos Eduardo Ferreiro Corrêa
 
jQuery
Bruno Cunha
 
Persistência com JPA e Hibernate
Fernando Oliveira
 
JavaScript ninja com jQuery
Reinaldo Junior
 
J query javascript para seres humanos
nobios
 
NoSQL e MongoDB - ETEC
Jefferson Queiroz
 

Destaque (6)

PDF
Working on Non-Conventional User Interfaces
Victor Adriel Oliveira
 
PDF
Acessibilidade em Sistemas para a Web
Victor Adriel Oliveira
 
PDF
User Experience
Victor Adriel Oliveira
 
PDF
Programação Web com HTML e CSS
Victor Adriel Oliveira
 
PDF
Tutorial sobre Jquery
Ivo Calado
 
Working on Non-Conventional User Interfaces
Victor Adriel Oliveira
 
Acessibilidade em Sistemas para a Web
Victor Adriel Oliveira
 
User Experience
Victor Adriel Oliveira
 
Programação Web com HTML e CSS
Victor Adriel Oliveira
 
Tutorial sobre Jquery
Ivo Calado
 
Anúncio

Semelhante a Programação Web com jQuery (20)

PDF
LPII_Aula_7-JQuery.pdf
GabrielaMota46
 
PPTX
jQuery - Visão Geral
Kaio Valente
 
PDF
Introdução ao JQuery e AJAX
Sérgio Souza Costa
 
PPT
Agilizando o desenvolvimento com j query
PHPRio
 
PPT
Agilizando o desenvolvimento com jquery
PHPRio
 
PPT
Agilizando o desenvolvimento com j query
PHPRio
 
PPTX
Minicurso jQuery
Wilker Iceri
 
PPT
J query 1
Ramon Oliveira
 
PPT
Melhorando a Experiência do Usuário com JavaScript e jQuery
Harlley Oliveira
 
PDF
Java script aula 07 - j-query
Cristiano Pires Martins
 
PDF
Java script aula 09 - JQuery
Cristiano Pires Martins
 
PDF
Desevolvimento Web Client-side - jQuery
Guilherme
 
PDF
Jquery - Apresentação e aplicação prática
Teles Maciel
 
PDF
Simplificando o Javascrip
Miquéias Amaro
 
PDF
Palestra - Iniciando no Jquery
grupoweblovers
 
PDF
jQuery
Bruno Cunha
 
KEY
JQuery Alagoinhas Dev Day - UNEB
Luciano Borges
 
ODP
Segunda Apresentação jQuery
douglasgrava
 
PPTX
Jquery - Dicas e Truques
Lambda 3
 
PPTX
JQuery
Titao Yamamoto
 
LPII_Aula_7-JQuery.pdf
GabrielaMota46
 
jQuery - Visão Geral
Kaio Valente
 
Introdução ao JQuery e AJAX
Sérgio Souza Costa
 
Agilizando o desenvolvimento com j query
PHPRio
 
Agilizando o desenvolvimento com jquery
PHPRio
 
Agilizando o desenvolvimento com j query
PHPRio
 
Minicurso jQuery
Wilker Iceri
 
J query 1
Ramon Oliveira
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Harlley Oliveira
 
Java script aula 07 - j-query
Cristiano Pires Martins
 
Java script aula 09 - JQuery
Cristiano Pires Martins
 
Desevolvimento Web Client-side - jQuery
Guilherme
 
Jquery - Apresentação e aplicação prática
Teles Maciel
 
Simplificando o Javascrip
Miquéias Amaro
 
Palestra - Iniciando no Jquery
grupoweblovers
 
jQuery
Bruno Cunha
 
JQuery Alagoinhas Dev Day - UNEB
Luciano Borges
 
Segunda Apresentação jQuery
douglasgrava
 
Jquery - Dicas e Truques
Lambda 3
 
Anúncio

Programação Web com jQuery

  • 2.  Victor Adriel de J. Oliveira  Associação Empresa Júnior de Computação: ◦ 2008 – Trainee ◦ 2009 – Diretor Administrativo/Financeiro ◦ 2010 – Conselheiro Fiscal  Programação Web: [HTML/CSS (tableless), jQuery, PHP, Smarty]  Contato: [email protected]  blogvictoradriel.blogspot.com
  • 3.  O que é  Sintaxe ◦ Seletores ◦ Manipulação do DOM ◦ CSS ◦ Eventos ◦ Efeitos ◦ Formulários  jQuery UI  Práticas
  • 4.  É uma biblioteca JavaScript disponibilizada como software livre e aberto, desenvolvida para mudar a forma de escrever JavaScript.  “O foco principal da biblioteca jQuery é a simplicidade. Por que submeter os desenvolvedores ao martírio de escrever longos e complexos códigos para criar simples efeitos?” (John Resig, jQuery in Action)
  • 5.  22/08/2005 ◦ “The premise for the module is as follows: Using the power of Pseudo-CSS Selectors, bind your Javascript functions to various HTML elements in the DOM. Looking at how Behaviour works, I've never been completely happy - it simply seems too tedious and verbose for everyday use.” (John Resig)  14/01/2006 ◦ jQuery: New Wave Javascript
  • 6.  22/08/2005 ◦ “The premise for the module is as follows: Using the power of Pseudo-CSS Selectors, bind your Javascript functions to various HTML elements in the DOM. Looking at how Behaviour works, I've never been completely happy - it simply seems too tedious and verbose for everyday use.”  14/01/2006 ◦ jQuery: New Wave Javascript “Jquery is like behaviour that has been sent back from the future by a secret fucking government lab” Zombieland
  • 7.  Utiliza seletores CSS para acessar e manipular o DOM;  Alheio às inconsistências de renderização entre navegadores;  Extensível;  Provê interatividade;  Simplifica tarefas específicas de JavaScript.
  • 8.  HTML DOM: ◦ O HTML DOM define objetos e propriedades para todos os elementos HTML, e os métodos (interface) para acessá-los. ◦ Em outras palavras: o HTML DOM é um padrão para acesso, atualização, adição ou deleção de elementos HTML.
  • 9.  Propriedades do HTML DOM: ◦ x.innerHTML – texto do elemento x ◦ x.nodeName – nome do elemento x ◦ x.nodeValue – valor do elemento x ◦ x.parentNode – pai do elemento x ◦ x.childNodes – filhos do elemento x ◦ x.attributes – atributos do elemento x
  • 10.  Métodos do HTML DOM: ◦ x.getElementById(id)  Captura o elemento com um id específico ◦ x.getElementsByTagName(name)  Captura todos os elementos com o mesmo comando ◦ x.appendChild(node)  Insere um novo nó filho no elemento x ◦ x.removeChild(node)  Remove um nó filho do elemento x
  • 11.  Métodos do HTML DOM: <html> <body> <p id="intro">Hello World!</p> <script type=“text/javascript”> txt=document.getElementById("intro").innerHTML; alert("O texto do paragrafo com o id 'info': " + txt); </script> </body> </html>
  • 12.  Métodos do HTML DOM: <html> <body> <p id="intro">Hello World!</p> <script type=“text/javascript”> txt=document.getElementById("intro").innerHTML; alert("O texto do paragrafo com o id 'info': " + txt); </script> </body> </html> Var txt = $(‘#intro’).val(); Com jQuery
  • 13.  Ir ao site: http://jquery.com  Fazer download da biblioteca  Linkar na página HTML: <head> <script type=“text/javascript” src=“/caminho/jquery-vs.js”></script> </head>
  • 16.  Minified ◦ jquery-1.6.4.min.js ◦ Compacto e de leitura difícil  Uncompressed ◦ jquery-1.6.4.js ◦ Espaço entre cada linha de código e amplamente comentado.
  • 17.  JavaScript in-line: ◦ CSS <style type=“text/css”> h1 { color:#090; } </style> ◦ HTML com o JavaScript in-line <h1 id=“cor”>Cabeçalho muda de cor</h1> <button type=“button” onclick=“document.getElementById(‘cor’).style.color =‘#F00’;”>Vermelha</button>
  • 18.  Função JavaScript: <script type=“text/javascript”> function mudaCor() { document.getElementById(‘cor’).style.color=‘#F00’; } </script> ◦ HTML <h1 id=“cor”>Cabeçalho muda de cor</h1> <button type=“button” onclick=“mudaCor();”>Vermelha</button>
  • 19.  JavaScript fora da marcação: <script type=“text/javascript”> Window.onload = function(){ Document.getElementById(‘btnRed’).onclick = mudaCor; } function mudaCor() { document.getElementById(‘cor’).style.color=‘#F00’; } </script>
  • 20.  JavaScript fora da marcação: ◦ HTML <h1 id="cor">Cabeçalho muda de cor</h1> <button type="button" id=“btnRed">Vermelha</button>
  • 21.  jQuery: <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#btnRed").click(function () { $("#cor").css("color","#FF0000"); }); }); </script>
  • 22.  Método ready() ◦ No javascript window.onload = function(){ Do this; } ◦ No jQuery $(document).ready(function(){ Do this; });
  • 23.  Construtor jQuery ◦ $( ) ◦ jQuery( )  jQuery.noConflict( ) ◦ Usa o alias jQuery ou outro de sua preferência
  • 24.  jQuery adota os seletores CSS 3! #ôPelaDoido  É necessário rever a terminologia aplicada aos elementos que compõem a árvore do documento.
  • 26.  Categorias: ◦ Básicos ◦ De atributo ◦ Hierárquicos ◦ Filtros  Básicos  De conteúdo  Por visibilidade  De filhos ◦ De formulários
  • 27.  Básicos ◦ Universal  $(“*”) ◦ De elemento  $(“p”) ◦ De múltiplos elementos  $(“p, h1, img”)
  • 28.  Básicos ◦ De classe  $(“.class”) ◦ De ID  $(“#id”)
  • 29.  De atributo  $(‘[nome]’)  $(‘[nome = “valor”]’)  $(‘[nome != “valor”]’)  $(‘[nome ^= “valor”]’)  $(‘[nome |= “valor”]’)
  • 30.  De atributo  $(‘[nome *= “valor”]’)  $(‘[nome ~= “valor”]’)  $(‘[nome $= “valor”]’)  $(‘[nome = “valor”][nome2 = “valor2”]’)
  • 31.  Hierárquicos  $(“ancestral descendente”)  $(“pai > filho”)  $(“anterior + posterior”)  $(“elemento ~ irmãos”)
  • 32.  Atributos gerais ◦ .attr( nomeAtributo ) .attr( nomeAtributo, valor ) Ex: $(‘input’).attr(‘disabled’, ‘disabled’) ◦ .prop( nomePropriedade ) .prop( nomePropriedade, valor ) Ex: $(‘input’).prop({ disabled: true });
  • 33. ◦ .removeAttr( nomeAtributo ) ◦ .removeProp( nomePropriedade ) Ex: $(“input”).removeProp(“checked”); ◦ .val( ) .val( valor ) Ex: $(“input”).val(‘Digite seu nome’);
  • 34.  Atributos de classe ◦ .addClass( nomeClasse ) ◦ .removeClass( [nomeClasse] ) ◦ .hasClass( nomeClasse ) ◦ .toggleClass( nomeClasse ) .toggleClass( nomeClasse, switch ) .toggleClass( [switch] )
  • 35.  HTML <body> <img src=" http://goo.gl/kQBXL" alt="Yao Ming" /> <div class="info"></div> </body>
  • 36.  jQuery $(document).ready(function(){ var atrAlt = $('img').attr('alt'); $('div').text(atrAlt ); $('img').attr('title','Você perdeu a capacitação?'); });
  • 37.  CSS <style type=“text/css”> .info{ color: red; } .highlight { background: yellow; } </style>
  • 40.  jQuery $('div').removeClass('info').addClass('highlight'); var ctd=0; $('div').click(function( ){ ctd++; $('div').toggleClass('highlight', ctd % 3 == 0); });
  • 41.  Inserção no DOM (Outside) ◦ .after( ) ◦ .before( ) Ex: $("p").before("<b>Hello</b>"); ◦ .insertAfter( ) ◦ .insertBefore( ) Ex: $("p").insertBefore("#smthng");
  • 42.  Inserção no DOM (Inside) ◦ .append( ) ◦ .prepend( ) Ex: $("p").prepend("<b>Hello</b>"); ◦ .appendTo( ) ◦ .prependTo( ) Ex: $("p").prependTo("#smthng");
  • 43.  Inserção no DOM (Inside) ◦ .html( ) ◦ .text( ) Ex: ◦ $(“div").html(“<button>botão</button>”); ◦ $(“div").text (“<button>botão</button>”);
  • 44.  Inserção no DOM (Around) ◦ .wrap( ) ◦ .wrapAll( ) ◦ .wrapInner( ) ◦ CSS div { border: 2px solid blue; } p { background:yellow; margin:4px; } ◦ HTML <p>Hello</p> ◦ jQuery $("p").wrap("<div></div>");
  • 45.  Remoção no DOM ◦ .unwrap( )  Remove o pai e coloca o filho no lugar ◦ .empty( )  Remove conteúdo do elemento ◦ .detach( )  Remove elementos mas permite recuperá-los ◦ .remove( )  Remove elementos completamente
  • 46.  Substituição no DOM ◦ .replaceAll( ) ◦ .replaceWith( ) Ex: ◦ $("<b>Paragraph. </b>").replaceAll("p"); ◦ $("p").replaceWith("<b>Paragraph. </b>");  Cópias ◦ .clone( )
  • 47.  HTML <label>Colaboradores:</label> <select class="copy" style="display:block;"> <option value="0">Selecione um...</option> <option value="1">Ana</option> <option value="2">João</option> <option value="3">Maria</option> </select> <button id="novoColaborador">More</button> <button id="removColaborador">Less</button>
  • 48.  jQuery $('#novoColaborador').click(function( ){ $('.copy:last').clone( ).appendTo('body'); }); $('#removColaborador').click(function( ){ $('.copy:last').remove( ); });
  • 49.  Propriedades de estilo ◦ .css( ) Ex: ◦ Var back = $(“div").css("background-color"); ◦ $("p").css("color","red"); ◦ $( this ).css({"width" : "+=100", "color" : "red"});
  • 50.  Dimensionamento ◦ .height( ) / .width( ) ◦ .innerHeight( ) / .innerWidth( ) ◦ .outerHeight( ) / .outerWidth( )
  • 51.  Dimensionamento ◦ .height( ) / .width( ) ◦ .innerHeight( ) / .innerWidth( ) ◦ .outerHeight( ) / .outerWidth( )
  • 52.  Dimensionamento ◦ .height( ) / .width( ) ◦ .innerHeight( ) / .innerWidth( ) ◦ .outerHeight( ) / .outerWidth( )
  • 53.  Offset ◦ .offset( ) ◦ .position( ) Ex: var pos = $("p").position( ); alert( pos.left ); ◦ .scrollLeft( ) / .scrollTop( ) Ex: $(“div").scrollLeft(300);
  • 54.  Diferença entre offset e position: ◦ CSS div { padding: 15px;} p { margin-left:10px; } ◦ HTML <div><p>Hello</p></div> <p></p> ◦ jQuery var pos = $("p:first").position( ); $("p:last").text( "left: "+ pos.left + ", top: "+ pos.top );
  • 55. ◦ CSS #box {background: black; color: #fff; width:100px;} ◦ HTML <div id="box">Click me to grow</div> ◦ jQuery $("#box").click(function ( ) { $( this ).css( "width","+=200" ); });
  • 56.  Eventos do mouse ◦ .click( )  Ativado com um clique ◦ .dblclick( )  Ativado com um duplo clique ◦ .hover( )  Ativado quando o cursor estiver sobre o elemento ◦ .mousemove( )  Ativado com o movimento do mouse
  • 57.  Eventos do mouse ◦ .mousedown( ) / .mouseup( )  Ativado com pressionar/soltar o clique ◦ .mouseenter( ) / .mouseleave( )  Cursor passa sobre ou deixa o elemento ◦ .mouseover( ) / .mouseout( )  Cursor passa sobre ou sai dos elementos filhos ◦ .toggle( )  Ativa funções em cliques alternados
  • 58.  Vamos usar o jsbin para treinar <body> <p>Pressione o mouse aqui.</p> <script> $("p").mouseup(function( ){ $(this).append('<span style="color:#F00;">Up.</span>'); }).mousedown(function(){ $(this).append('<span style="color:#00F;">Down.</span>'); }); </script> </body>
  • 59.  Eventos do teclado ◦ .focusin( )  Ativado com o foco no elemento ◦ .focusout( )  Ativado com a perda do foco no elemento ◦ .keypress( )  Ativado com o pressionar de qualquer tecla ◦ .keyup( ) / .keydown( )  Ativado com o pressionar/soltar a tecla
  • 60. var estado=0; $(‘body’).keypress(function(tecla){ switch( estado ){ case 0: if(tecla.which==116){ estado++; } else { estado=0; } break; case 1: if(tecla.which==101){ estado++; } else { estado=0; } break; case 2: if(tecla.which==99){ alert(“ Vc digitou ‘tec’? ”); } estado=0; } });
  • 61.  Além dos eventos do mouse e teclado vocês devem estudar mais sobre:  Event Handler Attachment  Objetos de eventos  Eventos do browser  Carregando o documento
  • 62.  Agora vamos brincar um pouquinho ^^  Acesse esse link: http://goo.gl/dLYCO e baixe o arquivo que vamos usar.  Vamos incrementar a página usando jQuery  O que for digitado na caixa de texto deve aparecer na tela.
  • 63.  Categorias ◦ Básicos ◦ De opacidade ◦ Corrediços ◦ De customização
  • 64.  Básicos ◦ .hide( ) ◦ .show( ) ◦ .toggle( )
  • 65.  Opacidade ◦ .fadeIn( ) ◦ .fadeOut( ) ◦ .fadeTo( ) ◦ .fadeToggle( )
  • 66.  Corrediços ◦ .slideDown( ) ◦ .slideUp( ) ◦ .slideToggle( )
  • 67.  HTML <div> <h3>Titulo 1</h3> <p>texto 1. Texto, texto e mais texto</p> </div>  jQuery $('p').hide( ); $('h3').click(function( ){ $('p').hide( ); $(this).parent( ).find('p').show( ); });
  • 68.  HTML <div> <h3>Titulo 1</h3> <p>texto 1. Texto, texto e mais texto</p> </div>  jQuery $('p').hide( ); $('h3').click(function( ){ $('p').hide( ); $(this).parent( ).find('p').show( ); }); Agora teste outros métodos: .fadeIn( ) e .fadeOut( ) .slideDown( ) e .slideUp( )
  • 69.  Customização ◦ .animate( ) ◦ .delay( ) ◦ .stop( )
  • 70. ◦ CSS div { background-color:#abc; width:90px; height:90px; margin:5px; font-size:1px; } ◦ HTML <button id="left">&laquo;</button> <button id="right">&raquo;</button> <div class="block">x</div>
  • 71. ◦ jQuery $("#right").click(function( ){ $(".block").animate({"margin-left": "+=200px"}, "slow"); }); $("#left").click(function( ){ $(".block").animate({"margin-left": "-=200px"}, "slow"); });
  • 72. ◦ HTML <button id="go">elem x</button> ◦ jQuery $("#go").click(function( ){ $(".block").animate({ width: "70%", opacity: 0.4, marginLeft: "0.6in", fontSize: "5em", borderWidth: "10px" }, 1500 ); });
  • 73. ◦ HTML <button id=“stop">STOP</button> ◦ jQuery $("#stop").click(function( ){ $(".block").stop( ); });
  • 74.  Baixe o arquivo: http://goo.gl/eo7MJ ◦ Ajude o Mário a chegar ao outro lado usando o método animate() do jQuery.
  • 75.  Seletores para formulários: ◦ :button ◦ :checkbox ◦ :input ◦ :text ◦ :radio ◦ :submit ◦ :reset ◦ :password ◦ :selected ◦ ...
  • 76.  Seletores para formulários: ◦ :button ◦ :checkbox ◦ :input ◦ :text ◦ :radio ◦ :submit ◦ :reset ◦ :password ◦ :selected ◦ ... Ex: $(“input:password”).css(“color”, “#CCC”);
  • 77.  Eventos relacionados a formulários: ◦ .blur( ) ◦ .change( ) ◦ .focus( ) ◦ .select( ) ◦ .submit( )
  • 78. ◦ HTML <form> <input type="text" name="busca" /> </form> ◦ jQuery $("input[name='busca']").val('Busca').css('color','#CCC') .focus(function( ){ $(this).val('').css('color','#000'); }).blur(function( ){ $(this).val('Busca').css('color','#CCC'); });
  • 79.  Vamos baixar o formulário e incrementá-lo usando o jQuery. (http://goo.gl/Feq7L)  Começaremos analisando o código HTML do formulário.
  • 80. // Dicas de preenchimento $(‘input + span').hide( ); $(".obrigatorio").blur(function( ){ var val = $(this).val( ); if(val == ""){ $(this).next( ).show( ); }else{ $(this).next( ).hide( ); } });
  • 83. //Validar $("form").submit(function( ) { var nome = $("input[name='nome']").val( ); var nasc = $("input[name='data']").val( ); var mail = $("input[name='email']").val( ); if(nome == ‘’){ alert("Preencha o campo nome."); return false; }
  • 84. if(mail == ‘’){ alert("Preencha o campo email."); return false; } if((nasc != ‘’)&&(! nasc.match( /^[0-9]{2}/[0-9]{2}/[0-9]{4}$/))){ alert("Data de nascimento inválida."); return false; } return true; });
  • 85.  Provê abstrações para interações e animações de baixo-nível, efeitos avançados e ferramentas personalizáveis construídas sobre a biblioteca jQuery.
  • 86.  Interações ◦ Draggable ◦ Droppable ◦ Resizable ◦ Selectable ◦ Sortable
  • 87.  Widgets ◦ Accordion ◦ Autocomplete ◦ Button ◦ Datepicker ◦ Dialog ◦ Progressbar ◦ Slider ◦ Tabs
  • 88. var nomes= [ "Beatriz Silva", "Eduardo Dantas", "Ivan Cezanne", "Janai Maciel", "José Adão", "Newton Costa", "Thiago Evangelista"]; $( "input[name='nome']" ) .autocomplete({ source: nomes });
  • 89.  HTML <div id="dialog" title="Muaahaa"> <p>Cuidado: Vírus! Não feche essa pop-up.</p> </div>  jQuery $( "#dialog" ).dialog();
  • 90. <div id="tabs"> <ul> <li><a href="#tabs-1">Um item</a></li> <li><a href="#tabs-2">Outro</a></li> <li><a href="#tabs-3">Mais um</a></li> </ul> <div id="tabs-1"> <p>Um texto aqui.</p> </div> <div id="tabs-2"> <p>Um texto aqui.</p> </div> <div id="tabs-3"> <p>Um texto aqui.</p> <p>Um texto aqui.</p> </div> </div> jQuery: $( "#tabs" ).tabs( );
  • 91. <div id="accordion"> <h3><a href="#">Um item</a></h3> <div> <p>Um texto aki</p> </div> <h3><a href="#">Outro</a></h3> <div> <p>Um texto aki</p> </div> <h3><a href="#">Mais um</a></h3> <div> <p>Um texto aki</p> </div> </div> jQuery: $( "#accordion" ).accordion( );
  • 92.  http://jquery.com/  http://ejohn.org/blog/selectors-in-javascript/  http://bennolan.com/behaviour/  http://www.w3schools.com/htmldom/default.asp  jQuery – A Biblioteca do Programador JavaScript, 2008, Maurício S. Silva, NOVATEC  Ajax com jQuery – Requisições AJAX com a simplicidade de jQuery, 2009, Maurício S. Silva, NOVATEC