cefet_web

JavaScript parte 2

JS no navegador, DOM, Eventos e o Espaço


Roteiro de hoje

  1. JavaScript no navegador
  2. O DOM
    1. Seleção de elementos
    2. Alteração de atributos
    3. Alteração de conteúdo
    4. Alteração de classes
  3. Eventos

JavaScript no navegador

API do navegador

  1. Objeto window
  2. Utilitários
  3. Objetos notáveis em window

O objeto global: window


O objeto global: window (cont.)


Objetos notáveis dentro de window


Objetos notáveis dentro de window (cont.)


Convenção: omitir window


O DOM

Dando comportamento a pagina


Conhecendo o DOM


O objeto document


Selecionando um elemento


Exemplo: clique em um botão


Exemplo de callback


Selecionando vários elementos (1/3)


Selecionando vários elementos (2/3)


Selecionando vários elementos (3/3)


NodeList vs Vetor


Caminhando na árvore


DOM como uma árvore


Caminhando pela árvore



Exemplo: imprimindo o nome das tags

function caminhaNoDOM(no, visitaNo) {
  visitaNo(no);
  no = no.firstChild;
  while (no) {
    caminhaNoDOM(no, visitaNo);
    no = no.nextSibling;
  }
}

function imprimeNomeDaTag(no) {
  // apenas imprime o nome da tag (e.g., BODY, H1, P)
  console.log(no.tagName);
}

function substitui(no) {
  // se for um nó de texto da árvore, substitui seu textContent
  if (no.nodeType === Node.TEXT_NODE) {
    no.textContent = no.textContent.replace(/antigo/g, 'novo');
  }
}

// chama o algoritmo de caminhamento com a função de visita
// imprimindo o nome da tag corrente
caminhaNoDOM(document.body, imprimeNomeDaTag);

Alterando o DOM


Anatomia de uma tag

Anatomia de uma tag mostrando que ela consiste de seu nome envolto por sinais de "menor que" e "maior que"


Alterando conteúdo (1/2)


Alterando o conteúdo (2/2)


Alterando atributos


Colocando/removendo classes


Exemplo: definindo “quem está selecionado”


Exemplo: um menu lateral aparecer


Eventos

Programação dirigida por eventos


Eventos


Event handlers


Associando mesma callback para vários elementos


Quem disparou o evento?


Eventos: tópicos avançados


Event Bubbling (Borbulhas de Amor)


Por que borbulhar?


Cancelando a bolha


Impedindo a ação padrão


Subindo na árvore do DOM (1/2)

Subindo na árvore do DOM (1/2)


Subindo na árvore do DOM (2/2)


Alternando uma classe


Referências