Webly: Menu Flutuante - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de javascript/ECMAScript/AJAX.

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Menu Flutuante Menu que flutua, independente da barra de rolagem. Avaliar tópico: -----

#1 Membro offline   Pinguim Ícone

  • Doce-de-leite :D
  • Ícone
  • Grupo: Moderadores
  • Posts: 651
  • Cadastrado: 22-junho 07
  • Localização:São Paulo - SP
  • Interesses:PHP;<br />JavaScript // Ajax;<br />Photoshop;

Postou 26 setembro 2007 - 12:39

Bom galera, segue um pequeno código Javascript que faz um menu flutuante na página.
Exemplo: www.absoluteanime.com

window.onresize = floatNavAdjust;
quickNavMode = fixInt(getCookie('quickNavMode'),0,1,2);//0:off, 1:on, 2:minimized
var floatNavStatus = new Array();
if(document.images) {
  txtbg = new Image(152,46); 
  txtbg.src="/!bin/floatnav/6666cc/text-bg.gif"; 
}

function getPageHeight() {
	var h = 0;
	if(typeof(window.innerHeight) == 'number') { //Non-IE
		h = window.innerHeight;
	} else if(document.documentElement && document.documentElement.clientHeight) { //IE 6+ in 'standards compliant mode'
		h = document.documentElement.clientHeight;
	} else if(document.body && document.body.clientHeight) { //IE 4 compatible
		h = document.body.clientHeight;
	}
	return(h);
}

function floatNavToggle(obj) {
	if(quickNavMode == 0) return;
	quickNavMode = ((quickNavMode == 1) ? 2 : 1);
	if(!(obj)) {
		if((obj = document.getElementById("floatNavToggleImg"))) {
			obj.src = (quickNavMode == 1) ? obj.src.replace("-plus.","-minus.") : obj.src.replace("-minus.","-plus.");
		}
		setCookie('quickNavMode',quickNavMode);	
	}
	if((obj = document.getElementById("floatNavBody"))) {
		obj.style.display = ((quickNavMode == 1) ? "block" : "none");
	}
}

function floatNavIn() {
	if(quickNavMode == 0 || quickNavMode == 1) return;
	quickNavMode = 2;
	floatNavToggle("temp");
	quickNavMode = 2;
}

function floatNavOut() {
	if(quickNavMode == 0 || quickNavMode == 1) return;
	quickNavMode = 1;
	floatNavToggle("temp");
}

function floatNavAdjust() {
	var obj = document.getElementById("floatNav");
	if(!obj || !(obj.style)) return;
	if(getPageWidth() < (750 + 16 + (46 * 2))) {
		obj.style.display = "none";
	} else {
		obj.style.display = "block";
		obj.style.height = getPageHeight() - 2; //For IE
	}
}

function floatNavShow(obj) {
	if(floatNavStatus[obj.id]) clearTimeout(floatNavStatus[obj.id])
	if(typeof(obj) == "string") obj = document.getElementById(obj);
	var divs = obj.getElementsByTagName("div");
	for(var i=0; i<divs.length; i++) {
		if(divs[i].className == "floatNavText") {
			divs[i].style.display = "block";
			return;
		}  
	}	
}

function floatNavHide(obj) {
	var id = obj.id;
	floatNavStatus[id] = setTimeout("floatNavHideNow('" + id + "')",10);
}

function floatNavHideNow(obj) {
	if(typeof(obj) == "string") obj = document.getElementById(obj);
	var divs = obj.getElementsByTagName("div");
	for(var i=0; i<divs.length; i++) {
		if(divs[i].className == "floatNavText") {
			divs[i].style.display = "";
			return;
		}  
	}
}

if(quickNavMode>0 && screen.width>800) {
	floatNavArray = new Array();
	floatNavArray.push(new Array("/index.html", "home", "Home", "Vai para a HomePage")); //
//Para adicionar páginas:
//	floatNavArray.push(new Array("link", "id da div", "Titulo", "Descricao"));

	var str = "";
	for(var i=0; i<floatNavArray.length; i++) {
		var formText = "";
		str += "<div class='floatNavLink' id='floatNavLink0" + i + "' onmouseover='floatNavShow(this)' onmouseout='floatNavHide(this)'>";
		str += "\t<div class='floatNavIcon'><a href='" + floatNavArray[i][0] + "'><img src='/!bin/floatnav/icon-" + floatNavArray[i][1] + ".gif' width=38 height=38 border=0 class='floatNavIcon' alt=''><\/a><\/div>";
		str += "\t<div class='floatNavText'><a href='" + floatNavArray[i][0] + "'>" + floatNavArray[i][2]  + ((floatNavArray[i][3] == "") ? "" : ("<br><span class='linkInfo'>" + floatNavArray[i][3] + "<\/span>")) + "<\/a>" + formText + "<\/div>";
		str += "<\/div>";
	}
	document.write("<div id='floatNav' onmouseover='floatNavIn()' onmouseout='floatNavOut()'><div id='floatNavHead' onclick='floatNavToggle()'>menu<\/div><div id='floatNavBody'" + (quickNavMode == 2 ? " style='display:none'" : "") + ">" + str + "<\/div><\/div>");
}

floatNavAdjust();


A única coisa que eu não descobrir foi como colocar o formulário igual dos caras ali ;D
you could be my someone, you could be my sin

+--
Eu sou oficialmente um adulto: A conta bancária está negativa...
0

#2 Membro offline   AglioEoliO Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 13
  • Cadastrado: 10-agosto 07
  • Localização:São Paulo-SP

Postou 01 outubro 2007 - 09:48

Legal esse menuzim, economiza um belo espaço com células em foruns por exemplo...


Você sabe dizer a compatibilidade dele? Se roda no IE4, 5, 6, FF1.0, 1.5, etc?

no FF2.0 eu sei que funciona, acabei de testar aqui...


Valeu pelo codigo
0

#3 Membro offline   Micox Ícone

  • Comunidade de desenvolvedores
  • Ícone
  • Grupo: Administradores
  • Posts: 5511
  • Cadastrado: 03-julho 06
  • Localização:Goiânia-GO
  • Interesses:Webly e elmicox.blogspot.com

Postou 03 outubro 2007 - 09:18

Mas lembre-se que menus feitos em javascript e sem correspondente aos links no HTML ficam inacessíveis ao google e a quem não tem javascript. então use com moderação :joia:
valeus.net/mwords - Links automáticos p/ o MercadoLivre em seu texto

Ajude, responda: mesmo que não saiba exatamente a resposta, seu pitaco pode dar uma luz no problema do outro.
Não respondo dúvidas por MP / Email / MSN e afins. O fórum está aqui pra isto.

elmicox.blogspot.com
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)