• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Buh#

Menu dinâmico c/ evento ONCLICK

16 mensagens neste tópico

Bem será que alguem me dá alguma dica para fazer o menu ainda mais dinâmico?

Do género ao abrir a página só os pais de topo vão estar visiveis, com um click abre os seus filhos... Sugestões pessoal!? Ou expliquei-me mal?! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisa de ser com click podes por com o evento onmouseover. Anyway, penso que isto será uma dúvida HTML.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não precisa de ser com click podes por com o evento onmouseover. Anyway, penso que isto será uma dúvida HTML.

Só coloquei aqui a dúvida para dar continuidade ao tópico anterior, e visto que estou a usar php... vou tentar! Nunca usei esse evento...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

menu dinamico so com php n me parece que vá ficar nada de jeito... e o onmouseover n é de php

usa javascript com o evento onclick e o style display:block ou none... é uma ideia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

menu dinamico so com php n me parece que vá ficar nada de jeito... e o onmouseover n é de php

usa javascript com o evento onclick e o style display:block ou none... é uma ideia

Será que me podiam mostrar um exemplo para ter uma idéia mais ao menos!??! :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

document.getElementById(elemento).onmouseover=MouseOver;
document.getElementById(elementoDois).onmouseover=MouseOver;

function MouseOver (evt)
{
  // aqui metes o codigo para o que queres fazer quando se passa o rato no "elemento"
//podes ir buscar o elemento que sofreu o evento com o seguinte codigo

var elementFf = evt.target.id; //para firefox
var elementIe = window.event.srcElement.id; //para IE

  //para fazer aparecer os elementos ou desaparecer
document.getElementById(elemento).style.display="none"; //ou display="block" para ficar visivel
}

espero que ajude  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E esse código fica no ficheiro à parte de onde tenho o menu certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E esse código fica no ficheiro à parte de onde tenho o menu certo?

Fica num ficheiro .js (javascript) incluído no cabeçalho das páginas onde tens o menu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fica num ficheiro .js (javascript) incluído no cabeçalho das páginas onde tens o menu.

Ok vou tentar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o mesmo elemento pode ter um mouseover e um mouseout

a chamarem as respectivas funcoes

podes tambem alterar inves do elemento simplesmente desaparecer, dar a sensacao de movimento

se por exemplo tens um menu lateral e os submenus abrem para o lado, brincar com o width. onmouseover o width do submenu aumenta, onmouseout o width diminiu

isto integrado num timer setInterval(function, tempo)

onde a function será o que vai manipular a div e o tempo em milisegundos serve para dizer de qt em qt tempo é que a funcao corre

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Do género nunca fiz nada do género, devo de ir demorar um bocadinho a lá chegar, depois digo qualquer coisa.  :P

Ah e quero utilizar é o onclick porque a ideia é um menu lateral que abre os filhos na vertical....

    * Tetra-avô

          o Bisa-avô

                + Avô

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou aqui bloqueado numa parte, tipo quero fazer com que seja distinguido os filhos para cada pai.

i

f ($filho["pai"]==0)
		{
			echo "<li class='pais' onclick=animacao('point".$filho['pai']."')>{$filho["nome"]}</li>";
		}else{
                echo "<li class='filhos' id='point".$filho['pai']."'>{$filho["nome"]}</li>";               	
		}

Tipo não sei se me fiz entender, mas aqui

onclick=animacao('point".$filho['pai']."'

está a identificar os pais e aqui

id='point".$filho['pai']."' 

os filhos a ser identificados. O problema é que este código não está a funcionar correctamente e o que está a fazer é não distinguir os pais, ou seja clico num pai ou noutro abre sempre os filhos do primeiro....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim é dificil ajudar, mas em principio ele está sempre a receber o mesmo id (do primeiro pai).

na funcao de javascript como estás a usar o onclick?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim é dificil ajudar, mas em principio ele está sempre a receber o mesmo id (do primeiro pai).

na funcao de javascript como estás a usar o onclick?

Talvez percebam melhor assim:

<script>
function animacao(obj) {
var YY = -20;
var XX = 1;

var el = document.getElementById(obj);

if(el.style.display != "block") {
var teste = window.setInterval(function() {
YY=YY+1;
if (YY < 1) {
el.style.display = "block";
el.style.position = "relative";
el.style.top=YY+document.body.scrollTop;
}
}
,20);
}else {
var teste = window.setInterval(function() {
XX=XX-1;
if (XX > -20) {
el.style.top=XX+document.body.scrollTop;
}else { clearInterval(teste);el.style.display = "none"; }
}
,20);
}
}
</script>

			<?php
				echo "<tr>";
				echo "<td class='menu1' valign='top'>";
mysql_connect("localhost", "user", "pass") or die ("Impossivel ligar ao servidor!<p>");
mysql_select_db("bd");
function printSubmenus($pai)
{
  $qf = mysql_query("select * FROM categorias where pai = $pai");

  echo "<ul class='ul'>";
  while ($filho=mysql_fetch_array($qf))
        {
		if ($filho["pai"]==0)
		{
			echo "<li class='pais' onclick=animacao('point".$filho['pai']."')>{$filho["nome"]}</li>";
		}else{
                echo "<li class='filhos' id='point".$filho['pai']."'>{$filho["nome"]}</li>";               	
		}
		printSubmenus($filho["id"]);
        }
echo "</ul>";
}

printSubmenus(0);

echo "</td>";
echo "</tr>";
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

printSubmenus($filho["id"]);

isto n é a id do filho? o que acho que querias passar era a id do pai que corresponde a esse filho, ou não?

tenta fazer echos a essas variaveis e à query e tenta perceber onde é que está o erro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

printSubmenus($filho["id"]);

isto n é a id do filho? o que acho que querias passar era a id do pai que corresponde a esse filho, ou não?

tenta fazer echos a essas variaveis e à query e tenta perceber onde é que está o erro

Ainda não consegui descubrir onde está o problema, já alterei várias coisas mas não consigo...  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora