DEV Community

Mr Punk da Silva
Mr Punk da Silva

Posted on

Learn JQuery

Table of Contents


Introdução

  • JQuery é uma biblioteca JavaScript, criada para facilitar a escrita de código JS nas páginas web
  • Tendo algumas vantagens e sua utilização é grande na web:
    • A biblioteca é pequena e rápida;
    • Possui uma facilidade maior na escrita de código;
    • Gera um grande poder para utilizar o JS
    • É cross-browser (multi-browsers)

Install

Para instalar o JQquery, ou seja, usa-lo há algumas formas:

  • Pode-se apenas colocar o endereço remoto do JQuery usando JSDelivr:
    • <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js"></script>
  • Usando npm ou yarn:
    • npm install jquery
    • yarn add jquery
  • Ou mesmo, a mais comum que é baixando ele:
    • Vá no site: https://jquery.com/
    • Click em Download, instale a versão uncompressed

É recomendável que se coloque o arquivo dentro da pasta js, criada dentro de seu projeto


Métodos de Carregamento e Inicialização

Carregamento:

  • Para verificar se o elemento está carregado usa-se o método ready;
  • Como por exemplo algo fundamental é todo a lógica acontecer quando o documento estiver carregado,
    • ou seja, usamos o elemento document e verificamos se ele está lido ou carregado;
[codigo de exemplo] /* * Assim que esse elemento do DOM for carregado será disparado o alert */ $( document ).ready(function () { alert('DOM CARREGADO!'); }); 
Enter fullscreen mode Exit fullscreen mode

Inicialização

  • Com o método load será executado o callback
    • assim que todos os elementos forem carregados0 na página
[codigo de exemplo] /* * Assim que todos os elementos do DOM forem carregados será disparado o alert */ $( window ).load(function () { alert('JANELA CARREGADA!'); }); 
Enter fullscreen mode Exit fullscreen mode

Lógica de Desenvolvimento do JQuery

  • No JQuery funciona com seletores, podemos selecionar elementos com ele, através de:
    • Tag:
    • exemplo |> $('h1')
    • Classe:
    • exemplo |> $('.minhaClasse')
    • ID:
    • exemplo |> $('#meuID')

Assim que selecionado é passado todas as funções nativas do JQuery, as ações são voltadas a eventos

Seletores

Métodos

  • Para adicionar atributos CSS no elemento usa-se: .css()
    • Sintaxe:
//-> passando apenas um atributo: $('h1').css("color", "#f66"); //-> passando mais de um atributo: $( 'a' ).css({ color: "#9ff", textDecoration: 'underline' }); 
Enter fullscreen mode Exit fullscreen mode
  • Para o elemento inicializar já escondido: .hide()
    • Sintaxe:
$('h1').hide(); 
Enter fullscreen mode Exit fullscreen mode
  • Dar um tempo entre eventos, usa-se: .delay()
    • O tempo deverá ser informado em microssegundos;
    • Sintaxe:
$('h1').delay('1000'); 
Enter fullscreen mode Exit fullscreen mode
  • Fazer com que o elemento selecionado aparecerá: .fadeIn()
    • O parâmetro slow - definirá que ele aparecerá de forma lenta;
    • Sintaxe:
$('h1').fadeIn('slow'); 
Enter fullscreen mode Exit fullscreen mode
  • Para setar um text dentro de um elemento: .text()
    • O parâmetro slow - definirá que ele aparecerá de forma lenta;
    • Sintaxe:
$('h1').text('Learn JQuery in DevPunk'); 
Enter fullscreen mode Exit fullscreen mode

Modos de encadeamento de comandos:

  • Obs: Podemos colocar todos os métodos de modo individualmente ou seja, separados:

    /* *>> Individualmente */ $( 'h1' ).css("color", "#f66"); $( 'h1' ).hide(); $( 'h1' ).delay('1000'); $( 'h1' ).fadeIn('slow'); $( 'h1' ).text('Learn JQuery in DevPunk'); 
  • Obs: Podemos colocar todos os métodos de modo inline ou seja, na mesma linha:

    /* *>> Inline */ $( 'h1' ).css("color", "#f66").hide().delay('1000').fadeIn('slow').text('Learn JQuery in DevPunk'); 
  • Obs: Podemos colocar todos os métodos de modo inline ou seja, na mesma linha:

    /* *>> Bloco */ $( 'h1' ) .css("color", "#f66") .hide() .delay('1000') .fadeIn('slow') .text('Learn JQuery in DevPunk'); 

Eventos

Para os eventos eles são métodos proprios JQuery, sendo que deve-se passar um callback para quando o evento for chamado

Click

  • Para o evento de click usa-se:
$(button).click(function () { alert("HEELO DARK HELL!!!"); }); 
Enter fullscreen mode Exit fullscreen mode
  • Hey, guys! Não podemos esquecer que pode-se usar arrow function ao inves de funções anônima ao usar callbacks, podemos usar assim:
$(button).click(() => { alert("HEELO DARK HELL!!!"); }); 
Enter fullscreen mode Exit fullscreen mode

Selectores Hierárquicos

  • Selecionando elementos filhos:
    • exemplo |>
// -> está selecionando a tag (elemento) p dentro da elemento pai que contém a classe content $('.content p') 
Enter fullscreen mode Exit fullscreen mode
  • Selecionando filhos diretos do elemento:
    • exemplo |>
$('.div1 > span').css({ color: 'red' }); 
Enter fullscreen mode Exit fullscreen mode
  • Selecionando todos os elemento após o selecionado
    • exemplo |>
$('.p1 ~ p').css({ fontWeight: '400' }); 
Enter fullscreen mode Exit fullscreen mode

Eventos de Navegadores

  • Evento de erro na imagem
    • Sintaxe:
$('img').error(function () { let imagem = $(this).attr('src'); alert(``); $('img').attr('src', 'img/error.png'); }); 
Enter fullscreen mode Exit fullscreen mode
  • **Evento de resize
    • Irá redimensionar a imagem referente a largura e espessura da janela quando o evento resize da janela for acionado
    • Sintaxe:
 let widthWindow = $(window).width(); let heightWindow = $(window).height(); $('img') .width(widthWindow) .height(heightWindow); $(window).resize(function () { $('img') .width(widthWindow) .height(heightWindow); }); 
Enter fullscreen mode Exit fullscreen mode

  • Evento de scroll
// -> Rotina simples  $('body').css("height", "7000px"); $(window).scroll(function () { $('img').fadeOut('1000'); }); // -> Rotina setando a imagem conforme o valor do scrollTop pelo evento de scroll $(window).scroll(function () { let top = $(window).scrollTop(); console.log(top); if (top > 400) { $('img').fadeOut('1000'); } else { $('img').fadeIn('1000'); } }); 
Enter fullscreen mode Exit fullscreen mode

Eventos de Mouse

Click

$('.ev1').click(function () { $(this).css("background", "#ccc"); ex.text("Você clicou!"); }); 
Enter fullscreen mode Exit fullscreen mode

Dois Clicks

$('.ev2').dbClick(function () { $(this).css("background", "#ccc"); ex.text("Você clicou duas vezes"); }); 
Enter fullscreen mode Exit fullscreen mode

Focus

$('.ev3') .focusin(function () { $(this).css("background", "#ccc"); ex.text("Você deu o focus"); }) .focusout(function () { $(this).css("background", "#000"); ex.text("Você tirou o focus"); }); 
Enter fullscreen mode Exit fullscreen mode

Hover

$('.ev4').hover(function () { $(this).css("background", "#ccc"); ex.text("Passou o mouse"); }); 
Enter fullscreen mode Exit fullscreen mode

Mouse Down

$('.ev5') .mousedown(function () { $(this).css("background", "#ccc");s ex.text("Você apertou o botão do mouse"); }).mouseup(function () { $(this).css("background", "#000"); ex.text("Você soltou o botão do mouse"); }); 
Enter fullscreen mode Exit fullscreen mode

Mouse Enter

let qtdeEntradasMouse = 0; $('.ev6') .mouseenter(function () { qtdeEntradasMouse++; ex.text(`$Entradas do Mouse: ${qtdeEntradasMouse}`); }) .mouseout(function () { ex.text("Saída do Mouse"); }); 
Enter fullscreen mode Exit fullscreen mode

Mouse Over / Leave

let qtdeEntradasMouseEv7 = 0; $('.ev7') .mouseover(function () { qtdeEntradasMouseEv7++; ex.text(`Mouse Over: ${qtdeEntradasMouseEv7}`); }) .mouseleave(function () { ex.text("Mouse Leave"); }); 
Enter fullscreen mode Exit fullscreen mode

Mouse Move

$('.ev8').mousemove(function (move) { let localX = move.pageX(); let localY = move.pageY(); ex.text(`Movimento X: ${localX}px | Movimento Y: ${localY}px` ); }); 
Enter fullscreen mode Exit fullscreen mode

Onde conseguir mais

Para saber mais vá em: https://api.jquery.com/category/events/mouse-events/


Eventos de Teclado e Formulário

Teclado

Exemplos:

  • Primeiro exemplo:

    $('.key').keypress(function () { let text = $(this).val(); ex.text(text); }); 
  • Segundo exemplo:

    $('.key').keydown(function () { let text = $(this).val(); ex.text(text); }); 
  • Terceiro exemplo:

    $('.key').keyup(function () { let text = $(this).val(); ex.text(text); }); 
  • Fazendo um placeholder com JQuery:

[index.html] <form action=""> <label> <input type="text" class="place" title="Digite seu nome" /> </label> <label> <input type="text" class="place" title="Digite seu nome" /> </label> <label> <input type="text" class="place" title="Digite seu nome" /> </label> <label> <textarea rows="10" class="place key" title="Digite seu nome" /> </textarea> </label> <label> <button>Botão</button> <button>Enviar</button> </label> </form> 
Enter fullscreen mode Exit fullscreen mode
[script.js] $('.place').each(function () { let input = $(this); let place = $(this).attr("title"); input .val(place) .css("color", "#ccc") .focusin(function () { input.css("color", "#000"); if (input.val() == place) { input.val(''); } }) .focusout(function () { if (input.val() == '') { input.css("color", "#ccc"); input.val(place); } }); }); 
Enter fullscreen mode Exit fullscreen mode

Fórmulario

*Exemplos: *

  • Primeiro exemplo:

    let ex = $('.ex1'); $('.ev1') .focus(function () { ex.text($(this).attr('title')); }) .keyup(function () { if ($(this).val() == 'pontocom') { $('.ev2').focus(); } }); 
  • Segundo exemplo:

    // será executado callback assim que houver mudança, ou seja,  // ¬ assim que mudar o conteudo do input, ele vai chamar a função passada $('.ev1').change(function () { ex.text(`Campo Alterado: ${$(this).val()}`) }); 
  • Terceiro exemplo:

    $('.ev2').blur(function () { ex.text(`Saída do campo: ${$(this).attr('name')}`) }); 
  • Quarto exemplo:

$('.selecionar').click(function () { // -> irá selecionar o texto do input $('.ev3').select(); $('form').submit(function () { // -> fará com que o submit não sejá enviado return false; }); }); 
Enter fullscreen mode Exit fullscreen mode

Onde conseguir mais

Para saber mais vá em:


Efeitos Básicos

Podemos também usar efeitos e animações básicas e usuais providas diretamente pelo JQuery, para saber mais vá em:

Top comments (0)