cefet_front_end

JavaScript parte 3

História, Estilizando elementos, Eventos de mouse, Depurando código


Na última aula… (1/4)

Null usado quando uma variável não tem um valor aplicável naquele momento (let x = null;)

Undefined é o tipo atribuído a variáveis que não foram associadas a nenhum valor (let x;)

Object um “saquinho” de propriedades: - js let voo = { companhia: 'Gol', destino: { cidade: 'Sydney' } }; js // ... voo.numero = 815; voo.destino.IATA = 'SYD'; if (voo.companhia === 'Gol'){ voo.preco = 700; }


Na última aula… (2/4)

  1. Função seta:
    const bebidas = ['refri', 'suco', 'cerveja'];
    
       
    // usando função ANÔNIMA:
    let com5Letras = bebidas.filter(function(b) {
      return b.length === 5;
    });
    
    // usando função SETA:
    com5Letras = bebidas.filter(b => b.length === 5);
    
    
    
    // callback com função ANÔNIMA:
    el.addEventListener('click', function() {
      alert(':3');
    }); 
    
    // callback com função SETA:
    el.addEventListener('click', () => alert(':3'));
    

Na última aula… (3/4)


Na última aula… (4/4)

  1. Alterando classes de um elemento:
    booEl.classList.toggle('selecionado');   // add, remove ou toggle (alternar)
    
  2. Alterando atributos de um elemento:
    pokemonLutandoEl.src = 'bulbasaur.png';  // qualquer atributo, aqui foi src
    
  3. Usando o argumento da callback de um evento:
    booEl.addEventListener('click', function(e) {
      let clicadoEl = e.currentTarget;       // elemento alvo (target) do evento
      clicadoEl.classList.toggle('selecionado');
    });
    

Hoje veremos

  1. Estilizando elementos dinamicamente
  2. Eventos de mouse - além do click
  3. Depurando código

O objeto global: window


O objeto global: window (cont.)


Objetos notáveis dentro de window


Convenção: omitir window


Estilizando elementos dinamicamente

Alterando propriedades CSS de elementos


Alterando o estilo de elementos


Nomes das propriedades de estilo em JS


Usar classes ou elemento.style?


Exemplo: abelhinhas.js


Eventos de mouse

Acionados com o controle do mouse


Eventos


Event handlers


Comparação: click vs mousedown vs mouseup


Comparação: mouseover vs mousemove vs mouseout


Pegando (x,y) do mouse


Exemplo: segue-mouse.js


Depurando código

Como executar Javascript passo-a-passo


Depuração: a aba Sources


Erros comuns (1/2)


Erros comuns (2/2)


Investigando:

“um elemento não foi alterado (via JS) como era previsto”



Depurando passo-a-passo (1/2)



Depurando passo-a-passo (2/2)