Promo Twittada Premiada Tuiuiú Comunicação Guanabara.Info

Curso de jQuery – Junte o útil ao agradável – Parte 7

Categorias: Aprenda, jQuery

15 comente

Curso de jQuery

Olá seres Guanabarianos, estou aqui direto da Campus Party, pensei que seria muito interessante aproveitar todo o tempo que tenho aqui para poder criar algum tipo de conteudo útil para a galera do Guanabara.info, e me veio a idéia de dar continuidade no Curso de jQuery.

Bom desta vez vou começar a complicar um pouco, do que fizemos anteriormente, vamos fazer algumas caixas se encaixarem em na resolução do Nosso usuário, porém não vamos utilizar CSS, que normalmente ocorrem vários tipos de problemas quando temos de usar o CSS para fazer isso.

  1. Aprendendo a importar o Framework do Google
  2. Início de Eventos e Efeitos [FadeTo e Toggle]
  3. Manipuladores modificando uma Classe
  4. Manipulação textual
  5. Criando um sistema de Abas
  6. Usando o Método Ajax de .load()

Então vamos começar a fazer o código…

O que fazer para começar?

Bom de início, acho interessante passar a vocês como será feito, primeiro vamos pegar o tamanho da janela do usuário, que como muitas vezes o usuário está com a tela maximizada, temos a resolução. Depois disso iremos usar essa informação para inserir o tamanho de cada um dos blocos fazendo uma pequena conta onde iremos pegar o tamanho da janela e iremos dividir pelo número de blocos existentes.

Contudo quero que este seja algo que funcione de maneira completamente automática, para facilitar a sua vida quando você colocar mais blocos.

Começando o código HTML

Primeiro vamos fazer o código HTML para que vocês possam entender como irá funcionar o nosso pequeno algorítimo.

<div class="blocos">
	<div class="bloco">
		<div class="conteudo">Aqui escrevemos algo!</div>
	</div>
	<div class="bloco">
		<div class="conteudo">Aqui escrevemos algo!</div>
	</div>
	<div class="bloco">
		<div class="conteudo">Aqui escrevemos algo!</div>
	</div>
	<div class="bloco">
		<div class="conteudo">Aqui escrevemos algo!</div>
	</div>
<div class="clear"></div>
</div>

Bom o nosso código será composto de um caixa[div:blocos] que será responsável por reter a informação do tamanho da tela do usuário.

Já as caixas[div:bloco] que temos no nível seguinte são responsáveis por reter o tamanho de cada um dos blocos exibidos.

Dentro de cada uma destas caixas temos uma outra[div:conteudo] que será onde iremos colocar nosso texto, por exemplo.

No final temos uma outra caixa[div:clear] que será usada para limpar qualquer tipo de erro com o atributo do CSS, o float.

Qual será o CSS?

Como sempre o CSS que iremos usar só vai criar um estilo fantasia, então você vai poder modificar quase tudo, exceto a definição float:left; usada para colocar todas as caixas [div:bloco] na horizontal e a caixa[div:clear] que acaba com os problemas das caixas[div:bloco] com a propriedade float do CSS.

div.blocos{
	width:100%;
} 

div.blocos div.bloco {
	background:#e5e5e5;
	border:1px solid #323232;
	float:left;
	margin:0 9px;
} 

div.blocos div.bloco div.conteudo {
	padding:10px;
}

div.clear {
	clear:both;
}

Criando um jQuery para redimencionar as divs

Agora vamos ao tão esperado jQuery, e segue o código e logo depois uma explanção bem completa do que irá acontecer.

$(document).ready(function(){
	blocosInteligentes()

	$(window).resize(function () {
		blocosInteligentes()
	});

});

function blocosInteligentes() {
	$("div.blocos").css({ 'width' : "100%"});

	var blocosSize = $("div.blocos").width();
	var qtdBlocos = 4;
	var margBlocos = 20;
	var completeMargin = Math.floor(qtdBlocos * margBlocos);
	var fullBlocos = Math.floor(blocosSize - completeMargin);
	var eachSize = Math.floor(fullBlocos / qtdBlocos); 

	$("div.blocos").css({ 'width' : blocosSize});
	$("div.blocos div.bloco").css({ 'width' : eachSize});
}

No código acima comecei definindo que o tamanho da caixa[div:blocos] é a tela toda[.css({ 'width' : "100%"});], e logo abaixo defino uma variavel[var blocosSize] e atribuo[= $("div.blocos").width(); ] a ela o valor da largura da caixa[div:blocos].

Depois de feito isso podemos atribuir a duas outra variáveis dois outros valores, a quantidade de blocos que usamos e quanto de margem lateral cada um deles tem. No nosso caso teremos 4 blocos e cada um deles com 20 de margem.

Após isso iremos fazer uma conta[Math.floor()] para obtermos quanto temos de margem ao todo, e depois iremos fazer uma conta para ver quanto espaço teremos para a largura para todas as caixas[div:bloco].

Logo abaixo, dividimos o novo tamanho da caixa[div:blocos] pela quantidade de caixas[div:blocos] e temos o valor da largura de cada um dos blocos.

Após feito as contas só temos que atribuir a caixa[div:blocos] sua largura total com a margem[.css({ 'width' : blocosSize});], e depois atribuir a cada uma das caixas[div:bloco] a largura que calculamos acima[.css({ 'width' : eachSize});].

Bom este código tem uma diferença para todos os que eu já apresentei, o código principal vai dentro de uma função fora do código do jQuery, e ai chamamos essa função dentro do jQuery e quando acontece um redimencionamento da tela do Browser, assim nunca ficaremos com o scroll horizontal.

Após feito tudo isso vocês podem salvar os arquivos editados, enviar para o servidor e ver como ficou, ou ver um exemplo de como irá ficar após de tudo feito corretamente, basta olhar a barra lateral.

Vocês também podem acessar o site oficial do jQuery e ler um pouco da documentação, que é muito completa e ajuda muito.

Qualquer tipo de dúvida relacionada ao artigo, pode e deve ser colocada nos comentários para que eu possa te ajudar.

Related Posts with Thumbnails

  • Mauricio - 16 - Curitiba-PR

    Opa, eu num conheço mto java quais sao os requisitos pra mim faze este curso?
    Vlw

    [Responder]

    Gustavo Silva Bordoni Respondeu:

    @Mauricio – 16 – Curitiba-PR,
    Cara os requisitos para fazer o curso, são um conhecimento básico em HTML e CSS, e força de vontade para entender.

    [Responder]

    janeiro 30, 2010 @ 8:12 pm
  • Marcus

    Só uma pergunta, você é o professor Guanabara que dava aula no colégio Santa Mônica por volta de 1999/2000??? se for, você me deu aula e foi por causa das suas aulas que eu me interessei por vb6 e hoje sou programador…

    abração

    Marcus Abrahão

    [Responder]

    janeiro 30, 2010 @ 10:19 pm
  • Marcus

    Só uma pergunta, você é o professor Guanabara que dava aula no colégio Santa Mônica, da taquara, por volta de 1999/2000??? se for, você me deu aula e foi por causa das suas aulas que eu me interessei por vb6 e hoje sou programador…

    abração

    Marcus Abrahão

    [Responder]

    janeiro 30, 2010 @ 10:20 pm
  • Edson Maia, 28, Macapá-AP

    Parabéns pela matéria. Vocês são feras mesmo. Voltei a estudar webdesign e adoro consultar os materiais que vocês produzem ou disponibilizam. Ele são mais do que um canivete suíço tecnológico.
    Continuem inovando e cada vez mais supreendendo. Adoro escutar os podcasts. Começei escutando do n° 71 e agora que já baixei todos fico louco de tanto rir. Valeu.

    [Responder]

    janeiro 31, 2010 @ 12:12 pm
  • Danilo

    Matério muito legal, mas faz bastante tempo que num tem nenhum post da categoria 3D, eu sou fascinado no assunto e gostaria de ver masi matérias sobre isso.

    Abraço

    [Responder]

    janeiro 31, 2010 @ 2:32 pm
  • O interessante é que parece que você adivinha o que estamos precisando. No caso Jquery é uma solução útil para desenvolvedores por tratar-se de deixar os aplicaticos mais interativos para com os usuários. Parabéns.

    [Responder]

    Gustavo Bordoni Respondeu:

    @Junior,
    Com certeza é a melhor opção para deixar os aplicativos web mais rápidos!

    [Responder]

    janeiro 31, 2010 @ 5:51 pm
  • Vou aprendeerr a progamar!
    Parabens pelo belo artigo,
    Eu fico aqui so na vontade de tar na campus part!

    [Responder]

    Gustavo Bordoni Respondeu:

    @Rafael Santos -Barra do Corda -MA,
    Obrigado cara, e com certeza vale a pena ir na Campus Party!

    [Responder]

    fevereiro 1, 2010 @ 9:11 am
  • Rafael

    Olá Guanabara!!!
    Quais livros recomendaria à alguém que já possui uma noção em javascript?
    Oque acham do Use a cabeça?

    [Responder]

    Gustavo S. Bordoni Respondeu:

    @Rafael, Cara eu não gosto muito do Use a cabeça pois ele é muito lento nas explicações fica dando um monte de explicações um tanto quanto bobas…

    Eu não sou muito conhecedor de livros, mas de jQuery, não tem livro melhor que uma boa lida nos Docs do site deles, que são ótimos.

    Mas sei que o Guanabara recomenda o do Maujor, e esse eu também sei que é bom.

    Até,

    [Responder]

    fevereiro 2, 2010 @ 12:02 pm
  • Gustavo,

    Pra quem cria bons layouts e não quer encher seu código CSS, está também é minha dica. quando arrumo um tempinho acompanho suas aulas gustavo !
    Agora voltei com meu blog e postei meu novo Plugin para menus de navegação DropDown bem simples e funcional.

    espero sua visita lá.
    http://jqu3ry.wordpress.com/2010/03/19/conheca-o-jquery-navmenu-criando-um-menu-dropdown/

    Sucesso.

    [Responder]

    março 26, 2010 @ 2:05 am
  • Diego Vilela
    22 - São Paulo

    Bom dia, o link do sistema de abas está quebrado. Lembro de já ter visto essa parte, mas não está disponível agora. Teria como postar novamente?

    Abraço

    [Responder]

    junho 22, 2010 @ 11:28 am
  • Não é que não esteja disponível, é que mudei o link para melhorar o SEO, ai acabei esquecendo de modificar os links.

    Obrigado, já estou mudando.

    [Responder]

    julho 18, 2010 @ 2:06 am

Comentar