Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Coordinate layer mobile

    Relativamente allo script in basso, come posso ottenere e stampare le coordinate dell'immagine o del layer che muovo in tempo reale?

    GRAZIE

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    <script type="text/javascript" src="dom-drag.js"></script>
    </head>

    <body>

    [img]lips_small.gif[/img]

    <script type="text/javascript">
    Drag.init(document.getElementById("example"));
    </script>

    <p id="es" style="position: relative" />ciao</p>

    <script type="text/javascript">
    Drag.init(document.getElementById("es"));
    </script>




    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma come speri ti si possa dare una risposta sensata senza sapere cosa si trova in dom-drag.js?

  3. #3
    scusa hai ragione:

    ecco il contenuto del file JS:

    /**************************************************
    * dom-drag.js
    * 09.25.2001
    * www.youngpup.net
    * Script featured on Dynamic Drive (http://www.dynamicdrive.com) 12.08.2005
    **************************************************
    * 10.28.2001 - fixed minor bug where events
    * sometimes fired off the handle, not the root.
    **************************************************/

    var Drag = {

    obj : null,

    init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
    {
    o.onmousedown = Drag.start;

    o.hmode = bSwapHorzRef ? false : true ;
    o.vmode = bSwapVertRef ? false : true ;

    o.root = oRoot && oRoot != null ? oRoot : o ;

    if (o.hmode && isNaN(parseInt(o.root.style.left ))) o.root.style.left = "0px";
    if (o.vmode && isNaN(parseInt(o.root.style.top ))) o.root.style.top = "0px";
    if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right = "0px";
    if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

    o.minX = typeof minX != 'undefined' ? minX : null;
    o.minY = typeof minY != 'undefined' ? minY : null;
    o.maxX = typeof maxX != 'undefined' ? maxX : null;
    o.maxY = typeof maxY != 'undefined' ? maxY : null;

    o.xMapper = fXMapper ? fXMapper : null;
    o.yMapper = fYMapper ? fYMapper : null;

    o.root.onDragStart = new Function();
    o.root.onDragEnd = new Function();
    o.root.onDrag = new Function();
    },

    start : function(e)
    {
    var o = Drag.obj = this;
    e = Drag.fixE(e);
    var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
    var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
    o.root.onDragStart(x, y);

    o.lastMouseX = e.clientX;
    o.lastMouseY = e.clientY;

    if (o.hmode) {
    if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
    if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
    } else {
    if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
    if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
    }

    if (o.vmode) {
    if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
    if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
    } else {
    if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
    if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
    }

    document.onmousemove = Drag.drag;
    document.onmouseup = Drag.end;

    return false;
    },

    drag : function(e)
    {
    e = Drag.fixE(e);
    var o = Drag.obj;

    var ey = e.clientY;
    var ex = e.clientX;
    var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
    var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
    var nx, ny;

    if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
    if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
    if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
    if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

    nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
    ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

    if (o.xMapper) nx = o.xMapper(y)
    else if (o.yMapper) ny = o.yMapper(x)

    Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
    Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
    Drag.obj.lastMouseX = ex;
    Drag.obj.lastMouseY = ey;

    Drag.obj.root.onDrag(nx, ny);
    return false;
    },

    end : function()
    {
    document.onmousemove = null;
    document.onmouseup = null;
    Drag.obj.root.onDragEnd( parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]),
    parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
    Drag.obj = null;
    },

    fixE : function(e)
    {
    if (typeof e == 'undefined') e = window.event;
    if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
    if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
    return e;
    }
    };

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    tra gli esempi del sito dell' autore c'e' gia' questa funzione, precisamente in questo esempio
    http://www.youngpup.net/_projectDire...rag/index.html

    nel tuo caso
    questo nell' head, dopo
    <script type="text/javascript" src="dom-drag.js"></script>
    codice:
    <script language="javascript">
    
    	window.onload = function() {
    		if (document.all || document.getElementById)
    		{
    			var oB = document.all ? document.all["example"] : document.getElementById("example")
    			var oG = document.all ? document.all["es"] : document.getElementById("es")
    			
    			reportBox2 = document.all ? document.all["oReport2"] : document.getElementById("oReport2")
    
    			Drag.init(oB);
    			Drag.init(oG);
    
    			oB.onDrag = function(x, y) { reportDrag("example", x, y); }
    			oG.onDrag = function(x, y) { reportDrag("es", x, y); }
    		}
    
    		function reportDrag(who, x, y) {
    			reportBox2.value = who + ": x=" + x + ",y=" + y;
    		}
    	}
    </script>
    questo tutto quello che ti serve nel body
    codice:
    <form>
    <input id="oReport2" style="margin-left: 20px; margin-top: 5px; width: 300px;" type="text">
    </form>
    [img]lips_small.gif[/img]
    <p id="es" style="position: relative" />ciao</p>
    ciao

  5. #5
    Sei un grande.

    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.