webForumDet fria alternativet

spara musposition

2 svar · 247 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#1

har denna fungerande kod.
koden visar musens x- och y- kordinater i de två översta textfälten.
nu skulle jag vilja att när man klickar så sparas aktuell position i de två undre textfälten.
jag började skriva men stötte på patrull direkt, (se stycke i koden), så hjälp!

<html>
<head>
<title></title>
<script type="text/javascript">
var MousePosition = function(){
    var theOne = null;
    var XY = {x:0,y:0};
    var readScroll = {scrollTop:0,scrollLeft:0,
                      clientLeft:0,clientTop:0};
    var lastTarget = null;
    var eventInited = false;
    var posReadX = 'pageX';
    var posReadY = 'pageY';
    function mm(e){
        e = e||window.event;
        XY.x = e[posReadX];
        XY.y = e[posReadY];
        lastTarget = e.target||e.srcElement;
    };
    function initEvent(ev){
        ev = ev||window.event;
        if((ev)&&((typeof ev.pageX == 'number')||
                 (typeof ev.clientX == 'number'))){
            posReadX = ((typeof ev.pageX == 'number')?
                                        'pageX':'clientX');
            posReadY = ((typeof ev.pageY == 'number')?
                                        'pageY':'clientY');
            setUpOnMouse(mm);
            mm(ev);
            eventInited = true;
        }else{
            setUpOnMouse(initEvent);
        }
    };
    function setUpOnMouse(f){
        if(window.document.onmousemove != f){
            document.onmousemove = f;
            if(document.captureEvents){
                document.captureEvents(Event.MOUSEMOVE);
            }
        };
    }
    return function(ev){  //constructor.
        if(!eventInited)initEvent(ev);
        if(theOne)return theOne;
        this.getPageX = function(){
            return  readScroll.scrollLeft -
                                        readScroll.clientLeft + XY.x;
        };
        this.getPageY = function(){
            return readScroll.scrollTop - readScroll.clientTop + XY.y;
        };
        this.getPageXY = function(){
            return {x:this.getPageX(),y:this.getPageY()};
        };
        this.getTarget = function(){
            return lastTarget;
        };
        this.toString = function(){
            return 'MousePosition [object]';
        };
        this.upDate = function(ev){
            if(eventInited){
                mm(ev);
            }else{
                initEvent(ev);
            }
            return this;
        };
        theOne = this;
    };
}();

var posObject;
var frmEl1;
var once = 0;
function startReport(){
	if(!frmEl1)frmEl1 = document.forms['f1'].elements
	if(posObject || (posObject = new MousePosition())){
        frmEl1['fieldX'].value = ' ' + posObject.getPageX();
        frmEl1['fieldY'].value = ' ' + posObject.getPageY();
	} setTimeout('startReport();', 40);
   
   
   	[b]// typ så här ----------------------------------------------------
	if(document.captureEvents)
	{
		if(document.captureEvents(Event.MOUSEDOWN))
		{
			frmEl1['fieldX_click'].value = ' ' + posObject.getPageX();
        	frmEl1['fieldY_click'].value = ' ' + posObject.getPageY();
		}
	}
	//----------------------------------------------------------------[/b]
   
}
</script>
</head>
<body onload="startReport();">
	<div style="width:100%;height:100%;">
	<form name="f1" action="#">
		X:<input type="text" value="" name="fieldX">
		Y:<input type="text" value="" name="fieldY">
		<br><br>
		X, klick:<input type="text" value="" name="fieldX_click">
		Y, klick:<input type="text" value="" name="fieldY_click">
	</form>
	</div>
</body>
</html>
stattinMedlem sedan jan. 2005500 inlägg
#2

Så här kanske:

<html>
<head>
<title></title>
[B]<body onMouseDown="sparaXY()">[/B] 
<script type="text/javascript">

[B]function sparaXY(){
    document.f1.fieldX_click.value=document.f1.fieldX.value
    document.f1.fieldY_click.value=document.f1.fieldY.value }[/B] 

var MousePosition = function(){
    var theOne = null;
    var XY = {x:0,y:0};
    var readScroll = {scrollTop:0,scrollLeft:0,
                      clientLeft:0,clientTop:0};
    var lastTarget = null;
    var eventInited = false;
    var posReadX = 'pageX';
    var posReadY = 'pageY';
    function mm(e){
        e = e||window.event;
        XY.x = e[posReadX];
        XY.y = e[posReadY];
        lastTarget = e.target||e.srcElement;
    };
    function initEvent(ev){
        ev = ev||window.event;
        if((ev)&&((typeof ev.pageX == 'number')||
                 (typeof ev.clientX == 'number'))){
            posReadX = ((typeof ev.pageX == 'number')?
                                        'pageX':'clientX');
            posReadY = ((typeof ev.pageY == 'number')?
                                        'pageY':'clientY');
            setUpOnMouse(mm);
            mm(ev);
            eventInited = true;
        }else{
            setUpOnMouse(initEvent);
        }
    };
    function setUpOnMouse(f){
        if(window.document.onmousemove != f){
            document.onmousemove = f;
            if(document.captureEvents){
                document.captureEvents(Event.MOUSEMOVE);
            }
        };
    }
    return function(ev){  //constructor.
        if(!eventInited)initEvent(ev);
        if(theOne)return theOne;
        this.getPageX = function(){
            return  readScroll.scrollLeft -
                                        readScroll.clientLeft + XY.x;
        };
        this.getPageY = function(){
            return readScroll.scrollTop - readScroll.clientTop + XY.y;
        };
        this.getPageXY = function(){
            return {x:this.getPageX(),y:this.getPageY()};
        };
        this.getTarget = function(){
            return lastTarget;
        };
        this.toString = function(){
            return 'MousePosition [object]';
        };
        this.upDate = function(ev){
            if(eventInited){
                mm(ev);
            }else{
                initEvent(ev);
            }
            return this;
        };
        theOne = this;
    };
}();

var posObject;
var frmEl1;
var once = 0;
function startReport(){
	if(!frmEl1)frmEl1 = document.forms['f1'].elements
	if(posObject || (posObject = new MousePosition())){
        frmEl1['fieldX'].value = ' ' + posObject.getPageX();
        frmEl1['fieldY'].value = ' ' + posObject.getPageY();
	} setTimeout('startReport();', 40);
   
   
   	// typ så här ----------------------------------------------------

	//----------------------------------------------------------------
   
}
</script>
</head>
<body onload="startReport();">
	<div style="width:100%;height:100%;">
	<form name="f1" action="#">
		X:<input type="text" value="" name="fieldX">
		Y:<input type="text" value="" name="fieldY">
		<br><br>
		X, klick:<input type="text" value="" name="fieldX_click">
		Y, klick:<input type="text" value="" name="fieldY_click">
	</form>
	</div>
</body>
</html>
doggelitoMedlem sedan juni 20003 100 inlägg
#3

superbt! :bire

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb