Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    139

    istruzione condizionale non corretta

    In questo codice sposto, con due pulsanti, un paragrafo rettangolo mobile dentro e fuori un paragrafo quadrato più grande e, con il “pulsante coordinate”, in un primo alert
    alert("cordinate mobile: " + x+";"+y);
    scrivo le coordinate dello spigolo alto sinistro del paragrafo rettangolo e, in un secondo alert,
    if (x>700 && x<900){alert("dentro il quadrato")}
    else{alert("fuori del quadrato")}
    vorrei scrivere se il rettangolo mobile è dentro o fuori del quadrato, ma il browser non legge l’istruzione condizionale:
    if (x>700 && x<900) e funziona sempre else: “fuori del quadrato”:
    E siccome il codice nel primo alert scrive x=800px ,( e non x=800), ho provato a cambiare l’istruzione condizionale così:
    if (x>700+”px” && x<900+”px”)
    ma neanche così viene letta.
    Penso quindi che in x=800px (che il codice calcola automaticamente), bisognerebbe togliere px, ma non so come fare e per questo chiedo un aiuto. Grazie.

    Voel

    codice:
    <!doctype html>
    <html>
    <body>
    <br><br>
    <input type="button" id="pulsante1" value="sposta1" onclick="sposta1()">
    <input type="button" id="pulsante2" value="sposta2" onclick="sposta2()"><br><br>
    <input type="button" id="pulsante3" value="indietro" onclick="sposta3()"><br><br>
    <input type="button" id="pulsante4" value="coordinate mobile" onclick="coord()">
    <P style="background:cyan; border: 2px double blue; width:200px; height:200px; position:absolute; top:40px; left:700px" id="quadrato"></P>
    <P style="background:yellow; border: 2px solid red; width:10px; height:100px; position:absolute; top:50px; left:200px" id="mobile"></P>
    <script>
    function sposta1()
    {
    var mobile1=document.getElementById("mobile");
    mobile1.style.left=800+"px";
    }
    function sposta2()
    {
    var mobile1=document.getElementById("mobile");
    mobile1.style.left=1000+"px";
    }
    function sposta3()
    {
    var mobile1=document.getElementById("mobile");
    mobile1.style.left=200+"px";
    }
    function coord()
    {
    var x=document.getElementById("mobile").style.left;
    var y=document.getElementById("mobile").style.top;
    alert("cordinate mobile: " + x+";"+y);
    if (x>700 && x<900){alert("dentro il quadrato")}
    else{alert("fuori del quadrato")}
    }
    </script>
    </body>
    </html>


  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,172
    forse non ho ben chiaro cosa vuoi fare

    ma se devi rimuovere del testo (px) dalla stringa 800 px

    non basta

    codice:
    x.replace("px","");
    ?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    139
    Grazie ciro78, per la soluzione. Infatti bastava togliere "px" a x=800px per rendere confrontabile x stesso con i numeri 700 e 900:

    codice:
    function coord()
    {
    var x=document.getElementById("mobile").style.left;
    var y=document.getElementById("mobile").style.top;
    xx=x.replace("px","");
    yy=y.replace("px","")
    alert("cordinate mobile: " + xx+";"+yy);
    if (xx>700 && xx<900){alert("dentro il quadrato")}
    else{alert("fuori del quadrato")}
    }
    lanvoel

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,172
    ah ok perfetto
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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 © 2020 vBulletin Solutions, Inc. All rights reserved.