cefet_front_end

JavaScript parte 4

Usando objetos, Criando elementos HTML


Na última aula… (1/3)

Transformações


Na última aula… (2/3)

.porta {
  transform-origin: left center;
  transition: transform ease 600ms;
}
.porta:hover {
  transform: rotateY(-95deg);
}

Na última aula… (3/3)

Animação

Especificada no CSS3, animation e @keyframes possibilitam o uso de animações de propriedades CSS de forma similar a transition

 <img src="images/urso.jpg" id="urso">
 #urso {
   position: relative;
   animation: flutuando .5s ease-in-out 0s infinite alternate;
 }
 @keyframes flutuando {
   from { top: 0;     }
   to   { top: -30px; }
 }

Roteiro

  1. Usando objetos em JavaScript
  2. Criando elementos HTML dinamicamente

Usando objetos em JavaScript

Saquinhos de propriedades


Conforme vimos: O tipo Object


Conforme vimos: Instanciando um Object


Instanciando um object usando new


Conforme vimos: Objetos dentro de objetos

let voo = {
    companhia: 'Gol',
    numero: 815,
    decolagem: {
        IATA: 'SYD',
        horario: '2004-09-22 14:55',
        cidade: 'Sydney'
    },
    chegada: {
        IATA: 'LAX',
        horario: '2004-09-23 10:42',
        cidade: 'Los Angeles'
    }
};

Vetores de Objetos

let jogadores = [      
  {
    nome: 'Yoda',
    pontos: 1420
  },
  {
    nome: 'Leia',
    pontos: 3010
  },
  {
    nome: 'Luke',
    pontos: 5600
  }
];


Passando objetos como argumentos

let jogadores = [
  { nome: 'Yoda', pontos: 1420 },
  { nome: 'Leia', pontos: 3010 },
  { nome: 'Luke', pontos: 5600 }
];

function passouDeFase(player) {
  // a função recebe 1 parâmetro,
  // que demos o nome de player
  player.pontos += 1000;
}

// podemos chamar a função para 1 jogador:
passouDeFase(jogadores[0]);   // Yoda

// ...ou para todos eles, percorrendo o vetor:
for (let i = 0; i < jogadores.length; i++) {
  passouDeFase(jogadores[i]);
}

// equivalente, porém super-mega-ultra ELEGANTE,
// usando vetor.forEach:
jogadores.forEach(passouDeFase);  // 🌟🌟🌟

Quando usar objetos?


Criando Elementos HTML Dinamicamente

Criando e removendo elementos na página


Criando elementos dinamicamente


Instanciação de elementos HTML


Inserção do elemento na árvore DOM

let containerEl = document.querySelector('#ovelhas');
let novaOvelhaEl = document.createElement('img');
novaOvelhaEl.src = 'img/ovelho-pixel.png';
containerEl.appendChild(novaOvelhaEl);

Vinculação na árvore DOM com (1) appendChild

  1. Exemplo de vinculação de elemento na árvore DOM

  2. Exemplo de vinculação de elemento na árvore DOM

  3. Exemplo de vinculação de elemento na árvore DOM

  4. Exemplo de vinculação de elemento na árvore DOM

  5. Exemplo de vinculação de elemento na árvore DOM


Vinculação na árvore DOM com (2) insertBefore

  1. Exemplo de vinculação de elemento na árvore DOM

  2. Exemplo de vinculação de elemento na árvore DOM

  3. Exemplo de vinculação de elemento na árvore DOM


Vinculação na árvore DOM com (3) replaceChild

  1. Exemplo de vinculação de elemento na árvore DOM

  2. Exemplo de vinculação de elemento na árvore DOM

  3. Exemplo de vinculação de elemento na árvore DOM


Resumindo: appendChild, insertBefore e replaceChild

Uma árvore com os elementos HTML


Inserindo texto nos elementos


Remoção de Elementos