Foros del Web » Programando para Internet » Javascript »

mover divs con el cursor y guardar su pocision

Estas en el tema de mover divs con el cursor y guardar su pocision en el foro de Javascript en Foros del Web. quiero algo como esto http://dhtmlkitchen.com/scripts/drag.../longlist.html pero no en lista.... sino, digamos divs como tablas y que las pueda mover en una pocision que yo determine ...
  #1 (permalink)  
Antiguo 11/04/2005, 23:45
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
mover divs con el cursor y guardar su pocision

quiero algo como esto

http://dhtmlkitchen.com/scripts/drag.../longlist.html

pero no en lista.... sino, digamos divs como tablas y que las pueda mover en una pocision que yo determine tipo como tiene google news o el nuevo servicio de spaces msn para el momento de edicion
__________________
Ignacio
  #2 (permalink)  
Antiguo 13/04/2005, 10:02
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
Cambiar posicion DIV, arrastrandolo y guardar su posicion

Hola chicos hace 2 días que ando buscando como poder hacer algo como tiene el google news o msn spaces...

está muy bueno y no "parece" tan complicado... alguien me puede dar una mano con esto?

es muy revolucionario
__________________
Ignacio
  #3 (permalink)  
Antiguo 13/04/2005, 10:11
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Ignacio porfa, no abras temas nuevos duplicados.

temas unidos

un saludo
  #4 (permalink)  
Antiguo 13/04/2005, 10:55
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno, pero quiero una idea pofa.

solución, idea

un saludo
__________________
Ignacio
  #5 (permalink)  
Antiguo 13/04/2005, 12:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Ignacio:

No es muy difícil mover capas, pero es algo que "hay que currar"...

En las FAQs hay un mensaje que habla de las coordenadas del ratón: http://www.forosdelweb.com/f13/faqs-javascript-105325-post264744/ y para que cambie de posición una capa debe tener estilos específicos: posicion: absolute; left: +/- npx; top: +/-px;...

En un viejo tema hicimos entre algunos foreros algo interesante sobre creación de postales digitales: http://www.pepemolina.com/postales/index.html En los créditos de la página puedes encontrar el enlace donde se desarrolló y "husmeando" podrás ver el código...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 13/04/2005, 13:00
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
si, algo así, pero no así... me refiero a algo como spaces msn... no puede ser tan complicado... mover capas así lo hago con dreamweaver... pero la idea es que al mover tenga un limite de lugar... digamos que la capa se "imante" en varios lugares donde sea posible que se "pegue"...

y luego de allí guardar la posicion de las capas imantadas... a ver si alguien puede ayudarme con esto... es complicado, si, lo se...
__________________
Ignacio
  #7 (permalink)  
Antiguo 13/04/2005, 13:41
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Ok, veamos que puedes hacer, lo has planteado (digo en codigo)? me molan los retos.

lo de pegar capas es hallar la distancia entre la capa y el elemento a pegar. Si esa distancia por ejemplo es <10 o asi, ponerlas pegadas. de ese problema yo kreo que nos podriamos deshacer rapido.

Plantealo y veremos que hacemos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 13/04/2005, 13:54
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
Por acá tenemos cajitas... por eso te decia, mover la cajitas, no parece ser tan complicado:

http://tool-man.org/examples/sorting.html

Ahora para guardar su pocision en una base de datos, con arreglos o con lo que sea, como podríamos hacer...

Saludos.
__________________
Ignacio
  #9 (permalink)  
Antiguo 13/04/2005, 15:23
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
De momento te dejo esto, que me voi a dormir ya.
Funciona en todos los navegadores, salvo que hay que evitar que se seleccione el texto.

Código PHP:
<html>

<
head>
<
title>Pag1</title>
<
style>
    .
elemento li{
        
positionabsolute;
        
left:55px;
        
width:300px;
        
float:left;
        
clear:both;
        
cursor:move;
        
padding:2px;
        
border1px solid #ccc;
        
background-color#eee;
    
}
</
style>
</
head>

<
body>
<
script LANGUAGE="JavaScript">
    
/* DRAG & DROP */
    // Original:  Randy Bennett ([email protected])
    // Web Site:  http://home.thezone.net/~rbennett/sitemap.htm
    // (modificado)
    
= (document.all) ? 1;
    var 
ob;
    
document.onmousedown=function(e) {
        if (
N) {
            
ob document.layers[e.target.name];
            
X=e.x;
            
Y=e.y;
            return 
false;
        }
        else {
            
ob event.srcElement.style;
            
//X=event.offsetX;
            
Y=event.offsetY;
        }
    }
    
document.onmousemove=function(e) {
        if (
ob) {
            if (
N)
                
ob.moveTo((e.pageX-X), (e.pageY-Y));
            else {
                
//ob.pixelLeft = event.clientX-X + document.body.scrollLeft;
                
ob.pixelTop event.clientY-document.body.scrollTop;
                return 
false;
              }
           }
    }
    
document.onmouseup=function() {
        
ob null;
    }
    
    if (
N)
        
document.captureEvents(Event.MOUSEDOWN Event.MOUSEMOVE Event.MOUSEUP);
</script>


<ul class="elemento">
<li style="top:5px;">uno</li>
<li style="top:30px;">dos</li>
<li style="top:55px;">tres</li>
<li style="top:80px;">cuatro</li>
<li style="top:105px;">cinco</li>
<li style="top:130px;">seis</li>
</ul>


</body>

</html> 

Ahora te toca mover ficha a ti

Entre todos poco a poco lo sacaremos, ya lo veras.

[Se podia haber copiado el script de esa pagina, pero si no no lo considero interesante, y ademas asi se simplifica]
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 22/08/2005, 13:12
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
document.layers has no properties

Hola,

estoy hace dias buscando el codigo qeu me permita mover capas en IE y en Mozilla, crei haberlo encontrado pero este code en mozilla me da error:

document.layers has no properties
a que se debe??

Saludos y gracias.
__________________
Liber
  #11 (permalink)  
Antiguo 22/08/2005, 13:54
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
document.layers no existe mas que en Netscape. No lo probé en mozilla, ya me puedes perdonar.

Creo que me he cargado ahora que funcione en Netscape, no lo tengo instalado en esta máquina. Si puedes probarlo me dices. Funciona en Firefox 1.0.6 y en Opera 8.1 (en IE6 tambien).

Código PHP:
<html

<
head
<
title>Pag1</title
<
style
    .
elemento li
        
positionabsolute
        
left:55px
        
width:300px
        
float:left
        
clear:both
        
cursor:move
        
padding:2px
        
border1px solid #ccc; 
        
background-color#eee; 
        
list-style-typenone;
    } 
</
style
</
head

<
body
<
script LANGUAGE="JavaScript"
    
/* DRAG & DROP */ 
    // Original:  Randy Bennett ([email protected]
    // Web Site:  http://home.thezone.net/~rbennett/sitemap.htm 
    // (modificado) 
    
= (document.all) ? 1
    var 
ob,X,Y
    
document.onmousedown=function(e) { 
        if (
N) {
            
ob document.getElementById(e.target.id).style
            
Y=e.clientY-parseInt(ob.top);
        }
        else {
            
ob event.srcElement.style
            
Y=event.offsetY;
        }
        return 
false;
    } 
    
document.onmousemove=function(e) { 
        if (
ob) { 
            if (
N)
                
ob.top=(e.clientY-Y)+"px";
            else
                
ob.pixelTop = (event.clientY-Y+document.body.scrollTop); 
              return 
false;
        } 
    } 
    
document.onmouseup=function() { 
        
ob null
    } 
     
    if (
N
        
document.captureEvents(Event.MOUSEDOWN Event.MOUSEMOVE Event.MOUSEUP); 


</script> 


<ul class="elemento"> 
    <li id="uno" style="top:5px;">uno</li> 
    <li id="dos" style="top:30px;">dos</li> 
    <li id="tres" style="top:55px;">tres</li> 
    <li id="cuatro" style="top:80px;">cuatro</li> 
    <li id="cinco" style="top:105px;">cinco</li> 
    <li id="seis" style="top:130px;">seis</li> 
</ul> 


</body> 

</html> 
Ademas le he quitado los puntos de la lista, que me parecia que quedaban feos ;P

A ver si funciona en Netscape..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 22/08/2005, 21:23
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 19 años, 7 meses
Puntos: 0
gracias derkenuke, mañana te comento como me fue! Saludos.
__________________
Liber
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 02:19.