Jump to content


Photo

Funcao Para Mostrar E Ocultar Camadas


  • Faça o login para participar
3 replies to this topic

#1 NOVAZOO

NOVAZOO

    12 Horas

  • Usuários
  • 198 posts
  • Sexo:Não informado
  • Localidade:BH/MG/BRASIL
  • Interesses:FLASH - ASP - XML - USABILIDADE - ARQUITETURA DE INFORMAÇÃO

Posted 23/08/2006, 16:23

Pessoal

Estou tentando adaptar uma função que antes exibia ou ocultava uma determinada camada assim:

function esconde_camada(estado) {
	 if( estado == "exibe" ) {
	   nome_da_camada.style.visibility = "hidden";
	 } else {
	   nome_da_camada.style.visibility = "visible";
	 }
   }

Preciso adaptar a função para exibir a camada que eu mandar.
Acontece que estou com proplemas pois não sei concatenar a variavel com o restante da instrução.

function mostra_camada(VARIAVEL) {
	VARIAVEL.style.visibility = "visible";
}
function oculta_camada(VARIAVEL) {
	VARIAVEL.style.visibility = "hidden";
}

Alguém?
Posted Image

#2 Generation

Generation

    Super Veterano

  • Usuários
  • 1546 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 23/08/2006, 16:36

Algo assim :

function mostra_camada(nome)
{
	if (!document.getElementById(nome).style.display) {
		document.getElementById(nome).style.display = 'none';
	}
	else
	{
		document.getElementById(nome).style.display = '';
	}
}


[]'s

Edição feita por: Generation, 23/08/2006, 16:37.

Favoritos : | OpenSuse | Opera | Firefox | NetBeans | GMail | Leia As Regras | Use a Busca | Como fazer Perguntas Inteligentes |
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/08/2006, 18:10

Complementando... :D

<script type="text/javascript">
function toggleLayer(layer)
{
	layer = (typeof layer == 'string') ? document.getElementById(layer) : layer;

	layer.style.visibility = (layer.style.visibility == 'hidden') ? 'visible' : 'hidden';
}
</script>
<div id="teste">foo</div>
<a href="java script: toggleLayer('teste');">Exibir / Ocultar</a>
Generation :wub: :P

Por mais que o parâmetro display seje manipulável à ponto de cumprir este objetivo, este não é bem o papel dele, he he he... :D

www.w3schools.com/css/pr_class_display.asp

display: Configura como / se um elemento será exibido

www.w3schools.com/css/pr_class_visibility.asp

visibility: Configura se o elemento será visível ou invisível

Seguindo a semântica do propósito (nem sei se isto existe, kkk)... o mais indicado seria usar o visibility, pois no caso do display, ele pode ter vários outros valores à não ser none. :D

Understand me ?! :rolleyes:

[]’s :DAté mais

#4 NOVAZOO

NOVAZOO

    12 Horas

  • Usuários
  • 198 posts
  • Sexo:Não informado
  • Localidade:BH/MG/BRASIL
  • Interesses:FLASH - ASP - XML - USABILIDADE - ARQUITETURA DE INFORMAÇÃO

Posted 24/08/2006, 07:34

Valeu pela força ae gente!
Capengando no Javascript!

Confio no code do vidaloka pois realmente DISPLAY tem outros parâmetros
e funções no css. Como por exemplo "block, compact, table, none.."
Visibility tem apenas a função de exibir ou não a camada.

Eu queria entender o código acima de tudo:

function toggleLayer(layer)
{
	layer = (typeof layer == 'string') ? document.getElementById(layer) : layer;

	layer.style.visibility = (layer.style.visibility == 'hidden') ? 'visible' : 'hidden';
}

Conditional Operator
JavaScript also contains a conditional operator that assigns a value to a variable based on some condition.
Syntax

variablename=(condition)?value1:value2
layer = (typeof layer == 'string') ? document.getElementById(layer) : layer;
Funciona como um IF? Se layer for uma string então vai receber o id da camada, senão recebe o valor passado como parâmetro?

Mesma coisa na outra linha:
layer.style.visibility = (layer.style.visibility == 'hidden') ? 'visible' : 'hidden';
Se o estado da camada for "hidden" ele seta como "visible", senão "hidden"?

Thanks 4 all by the way!
Posted Image




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq