Ajuda - Busca - Membros - Calendário
Versão Completa: Pegando valor de style corrente.
Fórum Script Brasil > WEB > Ajax, JavaScript, XML, DOM > Repositório de Scripts - Ajax, JS, XML, DOM
KaKarotto
Eu imagino que tenham tentado fazer isso um dia:

CODE
<style type="text/css">
div#caixa{ width:50px; height:50px; border:1px solid blue; display:none }
</style>

<div id="caixa"></div>

<script type="text/javascript">
if(document.getElementById('caixa').style.display=="none")
document.getElementById('caixa').style.display="block"
</script>


O código é simples, ele verifica se o div "caixa" está oculto, se estiver ele faz aparecer.

Se tentaram fazer isso com certeza não tiveram êxito. Isso porque o javascript só consegue verificar os valores de style que são definidos pelo java script:

CODE
document.getElementById('caixa').style.display="none"


ou quando colocados em modo in-line:

CODE
<div id="caixa" style="display:none"></div>


Então como fazer pra pegar o valor do estilo do elemento?

Bom, (de novo vou falar bem do péssimo IE) no iE é simples, ele tem uma propriedade chamada currentStyle, simples, basta utilizá-lo no lugar de style.

Porém, no FF é o seguinte código:

CODE
document.defaultView.getComputedStyle(document.getElementById('caixa'), null).getPropertyValue("height")


Olha só o trilho de rato...Podem falar o que quiser do iE, mas sem dúvida seus códigos são mais elegantes.

Enfim, vamos fazer um Cross-Browser desse código pra não ficarmos repetindo toda hora essa coisa toda, utizando a dica que eu passei sobre propriedades no outro post.

CODE
function $style(elem, att){
if(elem.currentStyle)
return (elem.currentStyle[att])
return document.defaultView.getComputedStyle(elem, null).getPropertyValue(att)
}


Tadáaaa \o/, usando a dica da propriedade como um array podemos, com pouco código, retornar o valor do atributo passado como argumento. Portanto, aquele primeiro código ficaria assim:

CODE
var caixa=document.getElementById('caixa')
  if($style(caixa, "display")=="none")  
  caixa.style.display="block"


Ó que código bonito....Esse é um bom exemplo de utilização de propriedades como array que eu disse no post passado.

Eu não testei em outros browsers, então eu gostaria de uma ajuda dos usuários do fórum pra saber se o código tem bug e se funciona em outros navegadores.

Akeleabrasssss
Visitante
toda vez que alguém faz uma crítica algum *&?- deleta, porque será? para não fazer a cliancinha que copiou o post em algum lugar e colocar aqui cholar? sad.gif

pois saibam seus filhinhos de papai que tem tudo de mão beijada, a crítica é que faz crescer
KaKarotto
Eita...infelizmente não consigo ficar longe da net por muito tempo rsrsrs.

QUOTE

toda vez que alguém faz uma crítica algum *&?- deleta, porque será? para não fazer a cliancinha que copiou o post em algum lugar e colocar aqui cholar? sad.gif

pois saibam seus filhinhos de papai que tem tudo de mão beijada, a crítica é que faz crescer
Oi Visitante, tudo bem?
Não fique bravo com o moderador, eu que pedi para ele deletar, ele verificou e constatou mesmo que seu post tinha caráter irônico, sem a menor intenção de acrescentar algo.

Desculpe discordar, mas o que fez não foi crítica:
QUOTE

ooooooooooooooooooooooohhhhhhh


Eu gostaria de saber onde nessa sentença você fez alguma crítica. Por favor, me mostre.

Olha, eu não criei a linguagem javascript, quando eu faço algum trabalho e surge uma dúvida, primeiramente procuro na internet a solução. As vezes não acho, como nesse caso, então eu procuro os códigos necessários e monto um que satisfaça a minha necessidade.

Se você achou em algum lugar o mesmo assunto, manda o link por favor, eu gostaria de saber se existe um outro código mais completo que o meu que funcione em outros browsers também, pode ter me fugido algum ponto, seria interessante para mim inclusive.

Eu sei que críticas fazem crescer, sempre que eu posto algo espero por críticas, porém, já que comentou sobre criancinhas no seu post, críticas podem ser dadas por qualquer um, até mesmo por criancinhas, dificil mesmo é achar alguém que consiga dar uma crítica inteligente e construtiva. É óbvio que não foi sua intenção, até porque pelo seu ultimo post, deu para perceber que já tinha uma idéia de como eu sou :

QUOTE
pois saibam seus filhinhos de papai que tem tudo de mão beijada, a crítica é que faz crescer


Então já veio postar com um certo preconceito....Obvio que não poderia haver qualquer crítica construtiva.

Oras, como sabe tão bem assim de mim? Quem disse que são meus pais que pagam minhas contas? Pessoas assim como você na net está lotada, eu gostaria de fazer uma crítica, mas não vi nada de conteúdo nos seus posts para ser criticado, então darei um conselho:

Leia mais, escreva menos, faça algo para acrescentar na SUA vida e se tiver tempo passe seu conhecimento adiante, mesmo que não seja muito, mesmo não sendo muito altruísta você ainda pode ser bastante maduro. Mande o link dos seus posts, se tiver um blog, ou se fizer como eu, que não tem muita paciência nem conhecimento e posta em fóruns. Se eu tiver tempo visitarei e vou gostar de compartilhar informações e até mesmo aprender.

Pô cara...post atacando as 6:00 da manhã??? você é corajoso...eu não acordaria tão cedo para postar contra alguém...eu acho que meu post foi mais importante pra você do que pra mim mesmo rsrsrs. você deve ter algo contra os filhinhos de papai, eu não tenho nada a ver, eu acho que se você não é filhinho de papai (como eu), deveria então se preocupar mais com a sua vida, já que ninguém vai fazer isso pra você não é mesmo? Nem papai, nem mamãe.

Eu vou pedir para o moderador não deletar o post do "amigo" Visitante, gostaria que deixasse intacto, para as pessoas verem que ignorancia não leva ninguém a lugar nenhum. Deixa ae como exemplo beleza fernandão ?!? wink.gif Senão a cliança chola, juro que não irei replicar, eu já disse tudo o que precisava dizer, não haverá batalhas.


Akelabrassssssss
Visitante
1 - quem disse que eu "visitante" foi o mesmo que fez o "ooooooh", agora todo visitante vai ser responsabilizado pela gracinha de outro?

2 - se você é filhinho de papai é que devia procurar fazer algo na vida, para dar valor ao trabalho dos outros, e não fazer cópias com base nos scripts de programadores profissionais, que tem que desenvolver para ganhar a vida, e vem alguém como você copia e leva o crédito.

Para encerrar, deixo a sua própia vida como exemplo, um dia quem sabe você não para e olha para si mesmo e pergunta: o que eu valho?
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2010 Invision Power Services, Inc.