Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Insert

Posicionar div na ponta no cursor ao exbi-la

Recommended Posts

Pessoal tenho este js para abrir e fechar uma div:

 

function info(acao,div){	var div_info = document.getElementById( div );	var acao = acao.substring(0,6);	if(acao == "abrir"){		div_info.style.display = "block";			}else{		div_info.style.display = "none";	}}

Estou usando com eventos do mouse em uma imagem, quando passo o mouse abre, quando tiro fecha.

 

Preciso de algo que faça a div se abrir com o começo dela la na ponta a flecha do mouse. atualmente posiciono com css mas se a pagina fui muito longa a div vai aparecer num lugar fico la em cima ai nao vou poder ver ela...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim:

 

function info(acao,div){	var div_info = document.getElementById( div );	var acao = acao.substring(0,6);	var x = event.clientX;	var y = event.clientY;		if(acao == "abrir"){		div_info.style.left = x;		div_info.style.top = y;		div_info.style.display = "block";	}else{		div_info.style.display = "none";	}}
Mas nao deu, no FF fica dando esta msg de erro:

 

Erro: event is not defined

Compartilhar este post


Link para o post
Compartilhar em outros sites

Finalmente consegui:

 

function pos(){	posX = window.event.clientX;	posY = window.event.clientY;	window.status = "X = " + posX + " : Y = " + posY;    }function info(acao,div){	var div_info = document.getElementById( div );	var acao = acao.substring(0,6);	document.onmousemove = pos;	if(acao == "abrir"){		div_info.style.left=posX;		div_info.style.top=posY;		div_info.style.display = "block";	}else{		div_info.style.display = "none";	}}

Mas ainda tem um detalhe, só funciona no IE, no FF da:

Erro: window.event has no properties

 

Como eu faço pra funcionar no FF??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei algumas coisas vejam:

 

function info(acao,div,e){	var div_info = document.getElementById( div );	var acao = acao.substring(0,6);		if(window.event){	x = event.clientX;		y = event.clientY;	}else{		x = e.clientX;		y = e.clientY;	}	if(acao == "abrir"){		div_info.style.left=x;		div_info.style.top=y;		div_info.style.display = "block";	}else{		div_info.style.display = "none";	}}

Ai pra chamar a funcao:

 

<img src="image.png" border="0" onmouseover="info('abrir','info_1','')" onmouseout="info('fechar','info_1','')" />
Agora como esta, no IE funciona normal, a div aparece la na ponta da flecha do mouse, mas no FF ela aparece em outro lugar, a fica piscando ou seja abrindo e fechando toda hora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.