Solució Moure Finestra

De wikiserver
Dreceres ràpides: navegació, cerca

Codi HTML de la pàgina que controla la finestra:

<html>
<head>
<script type="text/javascript" src="mourefinestra.js"></script>
<style type="text/css">
	html
	{
		font-family: "courier new";
	}
</style>
</head>
<body >
    <button onclick="openPopUp();">obrir</button>
    <button onclick="reset();">reset</button>
    <button onclick="closePopUp();">tancar</button>
    
<center>
    <p><button onclick="mouadalt();">dalt</button></p>
    <p>
    <button onclick="mouesquerra();">esquerra</button>
    <button onclick="moudreta();">dreta</button>
    </p>
    <p><button onclick="mouabaix();">baix</button></p>
    
</center>
    <div id="dades"></div>
</body>
</html>

Codi del fitxer Javascript:

/* 
 * Exercici Moure una finestra per la pantalla
 * 
 */
var comprimir = 5;
var margenErrorX = 10;
var margenErrorY = 30;
var scroll = 100;
var width = 150;
var height = 150;
var win;


function mouesquerra(){
// moure la finestra cap a la esquerra

if(win.screenX  <=  margenErrorX){
    // si la finestra es troba en el marge esquerra de la pantalla de l'usuari
    // modifiquem la mida de la finestra fent-la més petita (5px cada cop)
    win.resizeBy(-comprimir, 0);
}else{
    // la finestra no es troba en el marge esquerra
    if(win.outerWidth  < width){
        //però la mida de la finestra no es la apropiada.
        //modifiquem la mida de la finestra abans de moure-la
        win.resizeBy(-comprimir,0);
    }
    else{
        //la finestra no es troba en el marge esquerra 
        //la finestra té la mida apropiada
        //llavors podem mour-la cap a la esquerra.
        win.moveBy(-scroll,0);
    }
}    
showDades();    
}

function mouadalt(){
    //moure la finestra cap a dalt
    
    if(win.screenY <= margenErrorY){
        //si la finestra es troba en el marge superior de la pantalla de l'usuari
        //modifiquem la mida de la finestra fent-la més petita
        win.resizeBy(0,-comprimir);
    }
    else{
        //la finestra no es troba en el marge superior de la pantalla de l'usuari'
        if(win.outerHeight < height){
            // però no té la mida correcta
            win.resizeBy(0,-comprimir);
        }
        else{
            //la finestra no es troba en el marge superior
            //la finestra té la mida apropiada
            //llavors podem moure-la
            win.moveBy(0,-scroll);
        }
    }
    
    showDades();
}

function moudreta(){
// moure la finestra cap a la dreta    

if(win.screenX + win.outerWidth + margenErrorX >=  win.screen.availWidth){
    // si la finestra es troba en el marge dret de la pantalla del usuari
    // modifiquem la mida de la finestra aumentan 5 pixel cada cop
    win.resizeBy(comprimir, 0);
}else{
    //si la finestra no es troba en el marge dret
    if(win.outerWidth  < width){
        // però la mida de la finestra no es la correcta
        // modifiquem la mida de la finestra abans de moure-la
        win.resizeBy(comprimir,0);
    }
    else{
        //la finestra no es troba en el marge dret
        //la mida de la finestra es correcte
        //llavors podem moure la finestra cap a la dreta.
        win.moveBy(scroll,0);
    }
    
}
showDades();
}

function mouabaix(){
    // moure la finestra cap aball
    
    if(win.screenY + win.outerHeight + margenErrorY >= win.screen.availHeight){
        //si la finestra es troba en el marge inferior de la pantalla de l'usuari
        //modifiquem la mida de la finestra fent-la mes gran
        win.resizeBy(0,comprimir);    
    }
    else{
        //si la finestra no es troba en el marge inferior
        if(win.outerHeight < height){
            //però la mida de la finestra no es la correcta
            win.resizeBy(0,comprimir);
        }
        else{
            //la finestra no es troba en el marge inferior
            //la finestra té la mida correcta
            win.moveBy(0,scroll);
        }
    }
    
    showDades();
}

function openPopUp(){
    win = window.open("","mou","left=0,top=0,width=150,height=150");
    showDades();
}

function closePopUp(){
    win.close();
    document.getElementById("dades").innerHTML = "";
}

function reset(){
    closePopUp();    
    openPopUp();
}

function showDades(){

    var data = "";
    data = data + "Informacio sobre la finestra : " + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>top:</b> " + win.screenY + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>left:</b> " + win.screenX + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>width:</b> " + win.outerWidth  + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>height:</b> " + win.outerHeight + "<br>";
    data = data + "Informacio sobre la pantalla del usuari :" + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>availWidth:</b> " + win.screen.availWidth + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>availHeight:</b> " + win.screen.availHeight + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>Width:</b> " + win.screen.width + "<br>";
    data = data + "&nbsp;&nbsp;&nbsp;&nbsp;<b>Height:</b> " + win.screen.height + "<br>";
    
    document.getElementById("dades").innerHTML = data;
}