Ver Mensaje Individual
  #18 (permalink)  
Antiguo 06/10/2007, 11:20
escudo40
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Crear dinamicamente evento onmouseover.

Yo no le conseguí el error como tengo pocos conocimientos con el arrastre de objetos te daré esta dirección donde explican como arrastrar objetos

http://kusor.net/traducciones/brainjar.es/drag1.es.html

y ete pequeño ejemplo

Código HTML:
<HTML>
<HEAD>
</HEAD>

  <style type="text/css">
    .boxA {
      background-color: #ffffc0;
      border: 1px solid #000000;
      padding: 8px;
      position: relative;
      left: 0px;
      top: 0px;
      width: 8em;
    }
    .boxB {
      background-color: #fffff0;
      border: 1px solid #000000;
      padding: 2px;
    }
  </style>
  
<BODY>

	<div style="z-index: 3; left: 4px; top: 0px;" class="boxA" onmousedown="dragStart(event)">Arrástrame</div>

</BODY>
</HTML>

<script type="text/javascript">
// Determine browser and version.
function Browser() {
	var ua, s, i;
    this.isIE    = false;
    this.isNS    = false;
    this.version = null;
    ua = navigator.userAgent;
    s = "MSIE";
    if ((i = ua.indexOf(s)) >= 0) {
       	this.isIE = true;
       	this.version = parseFloat(ua.substr(i + s.length));
       	return;
    }
    s = "Netscape6/";
    if ((i = ua.indexOf(s)) >= 0) {
    	this.isNS = true;
    	this.version = parseFloat(ua.substr(i + s.length));
    	return;
    }
    // Treat any other "Gecko" browser as NS 6.1.
    s = "Gecko";
    if ((i = ua.indexOf(s)) >= 0) {
    	this.isNS = true;
      	this.version = 6.1;
      	return;
    }
}
var browser = new Browser();
// Global object to hold drag information.
var dragObj = new Object();
dragObj.zIndex = 0;
function dragStart(event, id) {
	var el;
    var x, y;
    // If an element id was given, find it. Otherwise use the element being
    // clicked on.
    if (id){
    	dragObj.elNode = document.getElementById(id);
    }else {
      	if (browser.isIE)
        dragObj.elNode = window.event.srcElement;
      	if (browser.isNS)
        	dragObj.elNode = event.target;
        	// If this is a text node, use its parent element.
      	if (dragObj.elNode.nodeType == 3)
        	dragObj.elNode = dragObj.elNode.parentNode;
    }
    // Get cursor position with respect to the page.
    if (browser.isIE) {
      	x = window.event.clientX + document.documentElement.scrollLeft
      		+ document.body.scrollLeft;
      	y = window.event.clientY + document.documentElement.scrollTop
      		+ document.body.scrollTop;
    }
    if (browser.isNS) {
    	x = event.clientX + window.scrollX;
      	y = event.clientY + window.scrollY;
    }
    // Save starting positions of cursor and element.
    dragObj.cursorStartX = x;
    dragObj.cursorStartY = y;
    dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
    dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);
    if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
    if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;
    // Update element's z-index.
    dragObj.elNode.style.zIndex = ++dragObj.zIndex;
    // Capture mousemove and mouseup events on the page.
    if (browser.isIE) {
    	document.attachEvent("onmousemove", dragGo);
      	document.attachEvent("onmouseup",   dragStop);
      	window.event.cancelBubble = true;
      	window.event.returnValue = false;
    }
    if (browser.isNS) {
      	document.addEventListener("mousemove", dragGo,   true);
      	document.addEventListener("mouseup",   dragStop, true);
      	event.preventDefault();
    }
  }

function dragGo(event) {
	var x, y;
  	// Get cursor position with respect to the page.
  	if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      	+ document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      	+ document.body.scrollTop;
  	}
  	if (browser.isNS) {
    	x = event.clientX + window.scrollX;
    	y = event.clientY + window.scrollY;
  	}
  	// Move drag element by the same amount the cursor has moved.
  	dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  	dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";
  	if (browser.isIE) {
    	window.event.cancelBubble = true;
    	window.event.returnValue = false;
  	}
  	if (browser.isNS)
    	event.preventDefault();
}

function dragStop(event) {
	// Clear the drag element global.
  	dragObj.elNode = null;
  	// Stop capturing mousemove and mouseup events.
  	if (browser.isIE) {
    	document.detachEvent("onmousemove", dragGo);
    	document.detachEvent("onmouseup",   dragStop);
  	}
  	if (browser.isNS) {
    	document.removeEventListener("mousemove", dragGo,   true);
    	document.removeEventListener("mouseup",   dragStop, true);
  	}
}
</script>