Показать сообщение отдельно
Старый 05.08.2008, 23:01     # 3
Viro_man
Banned
 
Аватар для Viro_man
 
Регистрация: 11.06.2008
Сообщения: 57

Viro_man Путь к славе только начался
Спасибо за ключевое слово, которое привело меня к другому более лучшему решению!

Код:
<html>
<head>
<script type="text/javascript">

var mycontent='<a href="#">LINK</a><br><a href="#">LINK2</a>';

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}



var timeoutID; var tempevent;

Posx=0; Posy=0;
function checks(e) { if (!e) var e = window.event;
if (e.pageX || e.pageY) { Posx = e.pageX; Posy = e.pageY; }
else if (e.clientX || e.clientY) { Posx = e.clientX; Posy = e.clientY; } }

function varme() { timeoutID=window.setTimeout('mymy()',1000); }

function mymy() { domlay('mymenu','1',Posx,Posy,mycontent); }

function domlay(id,trigger,lax,lay,content) {
if(typeof window.pageXOffset!='undefined') { var posleft=window.pageXOffset; var postop=window.pageYOffset; }
else { var posleft=window.document.body.scrollLeft; var postop=window.document.body.scrollTop; } 
if (trigger=="1") {
	if (document.layers) { document.layers[''+id+''].visibility = "show"; }
	else if (document.all) { document.all[''+id+''].style.visibility = "visible"; }
	else if (document.getElementById) { document.getElementById(''+id+'').style.visibility = "visible"; } }
else if (trigger=="0") {
	if (document.layers) { document.layers[''+id+''].visibility = "hide"; }
	else if (document.all) { document.all[''+id+''].style.visibility = "hidden"; }
	else if (document.getElementById) { document.getElementById(''+id+'').style.visibility = "hidden"; } }	
if (lax) { 
	lax=lax+posleft-5;
	if (document.layers) { document.layers[''+id+''].left = lax; }
	else if (document.all) { document.all[''+id+''].style.left=lax; }
	else if (document.getElementById) { document.getElementById(''+id+'').style.left=lax+"px"; } }
if (lay) { lay=lay+postop-5;
	if (document.layers) { document.layers[''+id+''].top = lay; }
	else if (document.all) { document.all[''+id+''].style.top=lay; }
	else if (document.getElementById) { document.getElementById(''+id+'').style.top=lay+"px"; } }
if (content) {
if (document.layers) {
	sprite=document.layers[''+id+''].document;
  	sprite.open();
  	sprite.write(content);
  	sprite.close(); }
else if (document.all) document.all[''+id+''].innerHTML = content;	
else if (document.getElementById) {
	rng = document.createRange();
	el = document.getElementById(''+id+'');
	rng.setStartBefore(el);
	htmlFrag = rng.createContextualFragment(content)
	while(el.hasChildNodes()) el.removeChild(el.lastChild);
	el.appendChild(htmlFrag); } } }
</script>
</head>
<body onmousedown="checks(event),varme();" onmouseup="window.clearTimeout(timeoutID);">
sometext
<div id="mymenu" style="background-color:#FFE0FF; visibility:hidden; position:absolute; top:100px; left:100px; width:100px; font-size:8pt; text-align:left;"
onmouseout="if (checkMouseLeave(this, event)) {
                   this.style.visibility = 'hidden';
                 }"></div>

</body>
</html>
Viro_man вне форума