Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Spostare oggetti

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    9

    Spostare oggetti

    Salve!
    Premetto che sono una principiante e un’autodidatta di JS.
    Ho due oggetti, vorrei che quando clicco sul primo, l’altro si spostasse. Ho scritto questo codice ma non funziona. Dove sbaglio?

    <html>
    <head>
    <script type="text/javascript">
    function myfunction(v) {
    var obj = document.getElementById(v);
    var currentPosition = parseInt(obj.style.top)
    var amountToMove = 30

    obj.style.top = currentPosition+amountToMove+"px";
    }
    </script>
    </head>

    <body>

    <button onclick="myfunction(b)" style="position:absolute; left:100px; top:10px; border:1px black outset; width:160px;">Clicca qui</button>
    <div id="b" style="position:absolute; left:100px; top:40px; border:1px black outset; width:160px;">B</div>

    </body>
    </html>

    Grazie dell’aiuto

  2. #2
    Sbagli a passare il parametro alla funzione. Se lo passi senza apici, "b" sarà una variabile non definita.
    codice:
     
    <button onclick="myfunction('b')" style="position:absolute; left:100px; top:10px; border:1px black outset; width:160px;">Clicca qui</button>
    Ultima modifica di lucavizzi; 02-01-2016 a 13:32

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    9
    Grazie mille .

    Faccio un’altra domanda.

    Se io avessi tre oggetti (A, B e C);
    A e B sono sempre visibili e alienati uno sotto l’altro; mentre C non è visibile
    Al click su A, vorrei che B si spostasse verso il basso e C si rendesse visibile e si posizionasse fra A e B.

    Come dovrei modificare il mio codice?
    Grazie ancora

  4. #4
    Quote Originariamente inviata da MaryP Visualizza il messaggio
    Grazie mille .

    Faccio un’altra domanda.

    Se io avessi tre oggetti (A, B e C);
    A e B sono sempre visibili e alienati uno sotto l’altro; mentre C non è visibile
    Al click su A, vorrei che B si spostasse verso il basso e C si rendesse visibile e si posizionasse fra A e B.

    Come dovrei modificare il mio codice?
    Grazie ancora
    Prego ;-)

    Per rendere un elemento invisibile si può usare la regola css: display:none
    codice:
    <div style="display:none" id="hidden_div">div content</div>
    Per renderlo visibile tramite js:
    codice:
    document.getElementById('hidden_div').style.display='block';
    Se vuoi che l'elemento C sia equidistante da A e B, dovrai posizionarlo, tramite la proprietà "top", in maniera analoga allo spostamento di B.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    9
    Salve.

    Se volessi eseguire solo una volta questo script, come lo dovrei modificare?

    <script type="text/javascript">
    function myfunction(v) {
    var obj = document.getElementById(v);
    var currentPosition = parseInt(obj.style.top)
    var amountToMove = 30

    obj.style.top = currentPosition+amountToMove+"px";
    }
    </script>

    Grazie

  6. #6
    Potresti usare una variabile globale di tipo boolean.
    In questo esempio passo alla funzione un secondo parametro con l'id dell'elemento da mostrare


    codice:
    <button onclick="myfunction('b','c')" style="position:absolute; left:100px; top:10px; border:1px black outset; 
    width:160px;">Clicca qui</button>
    
    
    
    <script type="text/javascript">
    
    var is_visible=false; // variabile globale
    
    function myfunction(v,c) {
       var obj = document.getElementById(v);
       var currentPosition = parseInt(obj.style.top)
       var amountToMove = 30
        obj.style.top = currentPosition+amountToMove+"px";
    
       if(!is_visible){
          document.getElementById(c).style.display='block';
          is_visible=true;
       }
    }
    </script>
     

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    9
    Grazie tanto. In realtà, lo script x il mio scopo è questo

    <script type="text/javascript">


    var is_visible=false; // variabile globale


    function myfunction(v,c) {
    var obj = document.getElementById(v);
    var currentPosition = parseInt(obj.style.top);
    var amountToMove = 30;


    if(!is_visible){
    document.getElementById(c).style.display='block';
    is_visible=true;
    obj.style.top = currentPosition+amountToMove+"px";
    }
    }
    </script>
    Ultima modifica di MaryP; 04-01-2016 a 17:52

  8. #8
    Quote Originariamente inviata da MaryP Visualizza il messaggio
    Grazie tanto. In realtà, lo script x il mio scopo è questo

    <script type="text/javascript">


    var is_visible=false; // variabile globale


    function myfunction(v,c) {
    var obj = document.getElementById(v);
    var currentPosition = parseInt(obj.style.top);
    var amountToMove = 30;


    if(!is_visible){
    document.getElementById(c).style.display='block';
    is_visible=true;
    obj.style.top = currentPosition+amountToMove+"px";
    }
    }
    </script>
    quindi volevi eseguire una sola volta anche lo spostamento.

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.