Ir para conteúdo
Fórum Script Brasil
  • 0

Pegando valor de style corrente.


KaKarotto

Pergunta

Eu imagino que tenham tentado fazer isso um dia:

<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:
document.getElementById('caixa').style.display="none"
ou quando colocados em modo in-line:
<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:
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.
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:
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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

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? :(

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

Link para o comentário
Compartilhar em outros sites

  • 0

Eita...infelizmente não consigo ficar longe da net por muito tempo rsrsrs.

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:

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 :

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 ?!? ;) 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

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...