Foros del Web » Programando para Internet » Javascript »

evitar la colision entre dos capas div al mover con el raton

Estas en el tema de evitar la colision entre dos capas div al mover con el raton en el foro de Javascript en Foros del Web. Buenas tardes, estoy intentando en este codigo que al mover dos capas con el raton no puedan ponerse una encima de la otra o otra ...
  #1 (permalink)  
Antiguo 23/03/2012, 11:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Sonrisa evitar la colision entre dos capas div al mover con el raton

Buenas tardes, estoy intentando en este codigo que al mover dos capas con el raton no puedan ponerse una encima de la otra o otra opcion seria si una capa se pone encima de la otra pues una quede dejabajo de la otra. gracias por la ayuda. os dejo el codigo :

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mover elementos de una página web con JavaScript</title>
<style type="text/css">
.objMovible{position:absolute;cursor:pointer;z-index:1}
</style>
<script type="text/javascript">
//Si el navegador del cliente es Mozilla la variable siguiente valdrá true
var moz = document.getElementById && !document.all;
//Flag que indica si estamos o no en proceso de arrastrar el ratón
var estoyArrastrando = false;
//Variable para almacenar un puntero al objeto que estamos moviendo
var dobj;

function arrastrarRaton(e){
if (estoyArrastrando) {
newLeft = moz ? e.clientX : event.clientX;
newTop = moz ? e.clientY : event.clientY;

dobj.style.left = newLeft - parseInt(dobj.style.width)/2;
dobj.style.top = newTop - parseInt(dobj.style.height)/2;

return false;
}
}


function soltarBoton(e) {
estoyArrastrando = false;
}


function presionarBoton(e) {
//Obtenemos el elemento sobre el que se ha presionado el botón del ratón
var fobj = moz ? e.target : event.srcElement;

// Buscamos el primer elemento en la que esté contenido aquel sobre el que se ha pulsado
// que pertenezca a la clase objMovible.
while (fobj.tagName.toLowerCase() != "html" && fobj.className != "objMovible") {
fobj = moz ? fobj.parentNode : fobj.parentElement;
}

// Si hemos obtenido un objeto movible...
if (fobj.className == "objMovible") {
// Activamos el flag para indicar que se empieza a arrastrar
estoyArrastrando = true;
// Guardamos un puntero al objeto que se está moviendo en la variable global
dobj = fobj;

// Devolvemos false para no realizar ninguna acción posterior
return false;
}
}

document.onmousedown = presionarBoton;
document.onmouseup = soltarBoton;
document.onmousemove = arrastrarRaton;

document.oncontextmenu=new Function("return false");
</script>
</head>
<body>
<div class="objMovible" style="width: 182px; height: 120px; background-color:#00F; left: 232px; top: 101px;"></div>
<div class="objMovible" style="width: 182px; height: 120px; background-color:#F00; left: 100px; top: 300px;"></div>

</body></html>
  #2 (permalink)  
Antiguo 24/03/2012, 12:34
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
De acuerdo Facil !!! evitar la colision entre dos capas div moviendolas con el raton

Buenas tardes, estoy intentando en este codigo que al mover dos capas con el raton no puedan ponerse una encima de la otra o otra opcion seria si una capa se pone encima de la otra haga ke una quede dejabajo de la otra. gracias por la ayuda. os dejo el codigo :
Código PHP:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<
title>Mover elementos de una página web con JavaScript</title>
<
style type="text/css">
.
objMovible{position:absolute;cursor:pointer;z-index:1}
</
style>
<
script type="text/javascript">
//Si el navegador del cliente es Mozilla la variable siguiente valdrá true
var moz document.getElementById && !document.all;
//Flag que indica si estamos o no en proceso de arrastrar el ratón
var estoyArrastrando false;
//Variable para almacenar un puntero al objeto que estamos moviendo
var dobj;

function 
arrastrarRaton(e){
if (
estoyArrastrando) {
newLeft moz e.clientX event.clientX;
newTop moz e.clientY event.clientY;

dobj.style.left newLeft parseInt(dobj.style.width)/2;
dobj.style.top newTop parseInt(dobj.style.height)/2;

return 
false;
}
}


function 
soltarBoton(e) {    
estoyArrastrando false;
}


function 
presionarBoton(e) {
//Obtenemos el elemento sobre el que se ha presionado el botón del ratón
var fobj moz e.target event.srcElement;

// Buscamos el primer elemento en la que esté contenido aquel sobre el que se ha pulsado
// que pertenezca a la clase objMovible. 
while (fobj.tagName.toLowerCase() != "html" && fobj.className != "objMovible") {
fobj moz fobj.parentNode fobj.parentElement;
}

// Si hemos obtenido un objeto movible...    
if (fobj.className == "objMovible") {
// Activamos el flag para indicar que se empieza a arrastrar
estoyArrastrando true;
// Guardamos un puntero al objeto que se está moviendo en la variable global
dobj fobj;

// Devolvemos false para no realizar ninguna acción posterior
return false;
}
}

document.onmousedown presionarBoton;
document.onmouseup soltarBoton;
document.onmousemove arrastrarRaton;

document.oncontextmenu=new Function("return false");    
</script>
</head>
<body>
<div class="objMovible" style="width: 182px; height: 120px; background-color:#00F; left: 232px; top: 101px;"></div> 
<div class="objMovible" style="width: 182px; height: 120px; background-color:#F00; left: 100px; top: 300px;"></div> 

</body></html> 
  #3 (permalink)  
Antiguo 24/03/2012, 13:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: evitar la colision entre dos capas div al mover con el raton

Fijate si esto es lo que querías (procuré preservar tu código lo más posible):
Código PHP:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
<
title>Mover elementos de una página web con JavaScript</title
<
style type="text/css"
.
objMovible{position:absolute;cursor:pointer;z-index:1
</
style
<
script type="text/javascript"
//Si el navegador del cliente es Mozilla la variable siguiente valdrá true 
var moz document.getElementById && !document.all
//Flag que indica si estamos o no en proceso de arrastrar el ratón 
var estoyArrastrando false
//Variable para almacenar un puntero al objeto que estamos moviendo 
var dobj
function 
arrastrarRaton(e){ 
if (
estoyArrastrando) { 
newLeft moz e.clientX event.clientX
newTop moz e.clientY event.clientY

dobj.style.left newLeft parseInt(dobj.style.width)/2
dobj.style.top newTop parseInt(dobj.style.height)/2

return 
false




function 
soltarBoton(e) {
    
estoyArrastrando false



function 
presionarBoton(e) { 
//Obtenemos el elemento sobre el que se ha presionado el botón del ratón 
var fobj moz e.target event.srcElement

// Buscamos el primer elemento en la que esté contenido aquel sobre el que se ha pulsado 
// que pertenezca a la clase objMovible.  
while (fobj.tagName.toLowerCase() != "html" && fobj.className != "objMovible") { 
fobj moz fobj.parentNode fobj.parentElement


// Si hemos obtenido un objeto movible...     
if (fobj.className == "objMovible") { 
// Activamos el flag para indicar que se empieza a arrastrar 
estoyArrastrando true;
if(
dobj && dobj.style){
    
dobj.style.zIndex=1;
}
if(
fobj && fobj.style){
    
fobj.style.zIndex=2;
}
// Guardamos un puntero al objeto que se está moviendo en la variable global 
dobj fobj

// Devolvemos false para no realizar ninguna acción posterior 
return false



document.onmousedown presionarBoton
document.onmouseup soltarBoton
document.onmousemove arrastrarRaton

document.oncontextmenu=new Function("return false");     
</script> 
</head> 
<body> 
<div class="objMovible" style="width: 182px; height: 120px; background-color:#00F; left: 232px; top: 101px"></div>  
<div class="objMovible" style="width: 182px; height: 120px; background-color:#F00; left: 100px; top: 300px"></div>  

</body></html> 
Y por favor no reabras mensajes si se trata del mismo tema.
  #4 (permalink)  
Antiguo 25/03/2012, 08:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Respuesta: evitar la colision entre dos capas div al mover con el raton

ok gracias pero te pido disculpas porque creo creo ke me he explicado un poco mal, lo que queria decir es que las dos capas no colisionen entre ellas, es decir que no se junten ni se posicionen en el mismo lugar, gracias por todo.

Etiquetas: capas, colision, div+dinamicos, drag, drag&drop, drog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:47.