Já leu esse post?

Tirando o MSN/ICQ da barra de tarefas (windows 7) Logo quando terminei de fazer a instalação do windows 7 na minha maquina percebi que ele deixa o icone na barra de tarefas por padrão, fiquei meio chateado, afinal...

Continue lendo

$1337: Recompensa para quem encontrar falhas de segurança... O Google anunciou sua nova iniciativa que busca ampliar a segurança de seu navegador. Desenvolvedores ou pesquisadores de segurança que notificarem a empresa sobre falhas...

Continue lendo

ICQ, se você usa, você é a resistência! Antes de qualquer coisa, ai vai meu numero de ICQ: 583748378 Quem não se lembra o Ôou e do som de maquina de escrever enquanto digita e aquela boa e velha opção...

Continue lendo

Operadores Aritméticos - Lógica de Programação Apartir de hoje vou iniciar uma série de posts sobre Lógica de Programação, a idéia é colocar em prática os conhecimentos absorvidos no dia-a-dia, serão posts curtos...

Continue lendo

Expressões aritméticas com JavaScript Saber expressões aritméticas é fundamento para desenvolvimento de animações em javascript, desde movimentações de ponto a ponto à coisas complexas com seqüências...

Continue lendo

TiloWR Rss

Retornando largura com clientWidth (Javascript).

Posted on : 06-01-2010 | By : Tilo | In : Tutoriais

0

Um tempo atrás montei um carrossel que trazia um desafio bem legal, precisava de um tamanho fixo para funcionar, porém, eu não sabia quantos itens teriam dentro de cada carrossel.

No começo foi meio complicado, mas cheguei a uma solução bem simples com javascript usando a propriedade clientWidth.

No exemplo tínhamos um numero x de LI e a UL deveria ter um tamanho fixo para o carrossel funcionar, o tamanho de LI é fixo, a idéia é:

Retornar o numero de LI dentro da UL, multiplicar a quantidade de LI pelo tamanho de UL, simples não é?

function AtivaCarrossel(id)
{
	var cr = document.getElementById(id);
	window['carrossel_'+id] = cr;
	cr.lis = cr.getElementsByTagName("li");
	cr.tamanhoUl = cr.lis[0].clientWidth * cr.lis.length;
	cr.ul.style.width = cr.tamanhoUl + "px";
}

Entendendo:

Pego o carrossel que vamos usar:

var cr = document.getElementById(id);

Crio uma variável pra ele:

window['carrossel_'+id] = cr;

Monto um Array com as LI dentro dele:

cr.lis = cr.getElementsByTagName("li");

Uso a largura da primeira LI e multiplico pela quantidade de itens dentro do array:

cr.tamanhoUl = cr.lis[0].clientWidth * cr.lis.length;

E finalmente aplicamos com um estilo em linha a largura no carrossel:

cr.ul.style.width = cr.tamanhoUl + "px";

IMPORTANTE: a propriedade clientWidth não retorna margem ou borda, apenas a largura “liquida”!

Leia Também:

Write a comment

Spam Protection by WP-SpamFree