javascript event

polar

Mitglied
kruze frage:

ich habe eine kleine funktion, die die mausposition abfragt. wenn der user über einen bereich meiner site fährt erscheint ein span mit text. verlässt die maus den bereich, setze ich den style visibility des span's auf hidden.

das problem dabei ist, wenn ich die mausbewegung einmal abfrage, wird sie daurhaft abgefragt und der unsichtbare span folgt überall hin :(

d.h. geht der user an die ränder der site erscheinen scrollbalken :(
wie kann ich die abfrage der mausbewegung wieder stoppen???

hier mein js code:

PHP:
ua = navigator.userAgent;
ie = (ua.indexOf("MSIE") > 0 ? true : false);

function moveSpan(e)
{
	span = document.getElementById('spanUrl');
	
	if(ie) 
	{
		eval(span).style.posTop = window.event.y + document.body.scrollTop;
		eval(span).style.posLeft = window.event.x + document.body.scrollLeft + 15;
	}
	else 
	{
    eval(span).top = e.pageY - window.pageY - (window.outerHeight - window.innerHeight);
    eval(span).left = e.pageX + 10 - window.pageX - (window.outerWidth - window.innerWidth);
	}
}
	
function showSpan(txt) 
{
	span = document.getElementById('spanUrl');
	eval(span).style.visibility = 'visible';
	eval(span).innerText = 'text: ' + txt;

	if(ie) 
	{
  	document.onmousemove = moveSpan;
	} 
	else 
	{
  	document.captureEvents(Event.MOUSEMOVE);
  	document.onmousemove = moveSpan;
	}
}
	
function hideSpan() 
{
	document.getElementById('spanUrl').style.visibility = 'hidden';
}

die funktion showSpan wird aufgerufen wenn der user über den bereich fährt, wenn er den bereich verlässt, wird die funktion hideSpan aufgerufen.

wer kann mir helfen?
 
hm gut, leuchtet ein. vieleicht mach ich auch ein kurz tutorial draus.

melde mich heute abend nochmal :)

*meld*

quick & dirty aber es funktioniert!

PHP:
ua = navigator.userAgent;
ie = (ua.indexOf("MSIE") > 0 ? true : false);

function moveSpan(e)
{
	span = document.getElementById('spanUrl');
	
	if(ie) 
	{
		eval(span).style.posTop = window.event.y + document.body.scrollTop;
		eval(span).style.posLeft = window.event.x + document.body.scrollLeft + 15;
	}
	else 
	{
    eval(span).top = e.pageY - window.pageY - (window.outerHeight - window.innerHeight);
    eval(span).left = e.pageX + 15 - window.pageX - (window.outerWidth - window.innerWidth);
	}
}

function showSpan(txt) 
{
	span = document.getElementById('spanUrl');

	if(ie) 
	{
  	document.onmousemove = moveSpan;
	} 
	else 
	{
  	document.captureEvents(Event.MOUSEMOVE);
  	document.onmousemove = moveSpan;
	}
	
	eval(span).innerText = 'text: ' + txt;
	eval(span).style.visibility = 'visible';
}
	
function hideSpan() 
{
	span = document.getElementById('spanUrl');
	eval(span).style.visibility = 'hidden';
	
	if(ie) 
	{
		eval(span).style.posTop = -200;
		eval(span).style.posLeft = -200;
		document.onmousemove = '';
	}
	else 
	{
    eval(span).top = -200;
    eval(span).left = -200;
	  document.captureEvents(Event.MOUSEMOVE);
  	document.onmousemove = '';
	}
}
 
Zuletzt bearbeitet:
Zurück