Page 1 of 2 12 LastLast
Results 1 to 15 of 18

Thread: Problema Javascript...

  1. #1
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default Problema Javascript...

    Ormai sono 10 anni che non tocco html e js e non mi ricordo una cicciola.

    Ecco il mio problema.

    Devo fare una pagina, ho strutturato un frame suddiviso in parte sinistra (pulsantiera), parte centrale (dove si sviluppa il sito) e parte in basso (dove ho un testo a scorrimento).

    Il mio problema è che la pulsantiera di sinistra, composta da delle semplici jpg quando ci passo sopra mi cambino di colore i vari pulsanti e utilizzo l'evento onmouseover ma il problema arriva quando li clicco.

    Voglio che il pulsante attivo mi cambi colore e rimanga di quel colore fino a quando non clicco su un'altro pulsante.

    Un mi riesce di usare l'evento onclick....credo devo crearmi uno script java...ma non ci cavo le gambe.

    Sapete darmi mana???

  2. #2
    Tanek's Avatar
    Join Date
    Apr 2004
    Location
    Milano, Midgard
    Posts
    11.225

    Default

    Domanduzza: ma quando clicchi non stai modificando la pagina del frame centrale? Con anche un bel reload della pagina immagino, no?
    Senza smanettare troppo con JS, ti gestisci un hidden nel frame centrale con cui sai quale sezione è attiva (perchè poi è quello il problema immagino, vedere il colore diverso della sezione attiva).
    Ma sono solo HTML o dietro c'è qualcosa?

    Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
    "Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
    ‎"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
    Per non dimenticare:
    Spoiler


  3. #3
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    Il frame centrale cambia normalmente cliccando su uno dei pulsanti della pulsantiera di sinistra, basta nel tag <a href=""> del pulsante mettere l'opzione target="" che tu hai evidenziato nella parte centrale del frame con l'opzione name="", quindi il problema non è quello.

    Il problema è solo che data una pulsantiera con i pulsanti A B C D, se passo su A mi diventa da giallo blu, se passo su B mi torna A giallo e diventa B blu (ho usato l'opzione onmouseover) ma il problema è...

    Quando clicco sul pulsante A voglio che il pulsante mi diventi nero e così rimanga fino a quando non clicco su un'altro pulsante.

    Lascia stare cosa succede nel frame della parte centrale, quella la gestisco con un normalissimo HTML.

    Il discorso hidden non l'ho mai usato ma la pulsantiera deve rimanere sempre attiva, se la gente si vuole spostare i pulsanti devono "rollare" al passaggio del mouse.

  4. #4
    Master Chief Petty Officer Metrox's Avatar
    Join Date
    Nov 2006
    Location
    Roma
    Posts
    2.492

    Default

    ma invece di stare ad impazzire col js non ti conviene fare una classe css che ti gestisce l'hover il visited e compagnia bella?



    edit: *
    Last edited by Metrox; 2nd December 2010 at 13:09.

  5. #5
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    I pulsanti sono delle immagini, non sono delle scritte che gestisco con i tag nel body o in un css, per intenderci non posso usare alink, link e vlink ecc...

    I Css dinamici esempio non sono supportati da IE quindi non posso nemmeno usare i nuovi comandi (che comunque non conosco) per gestire i menù in modo dinamico.

    Semplicemente data l'immagine A se la clicco deve diventare nera e rimanerci fino a quando non clicco sull'immagine B.

    Stop

  6. #6
    Tanek's Avatar
    Join Date
    Apr 2004
    Location
    Milano, Midgard
    Posts
    11.225

    Default

    E allora sull'onclick di ogni immagine devi metterci un metodino JS in cui fai un check di tutte le immagini (non solo di quella selezionata) con un oggetto javascript (della pagina, non del metodo) che all'interno si memorizza l'id o il name o quello che vuoi per capire dove hai cliccato.

    ps: se ricarichi il frame sparisce tutto però ovvio.

    Tanek™: Game Designer & Algorithm Mastermind, Team Leader & SW Engineer and Dungeon Master!
    "Datte Foco"™ and "Ma KITTESENCULA"™ are registered trademarks of Tanek Entertainment Inc.
    ‎"One of these days, scientists will discover that second X chromosome contains nothing but nonsense and twaddle." - Sheldon Cooper
    Per non dimenticare:
    Spoiler


  7. #7
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    E ce lo so ma non mi ricordo un cazzo!!! Ci ho provato ma ho combinato un puttanaio che ovviamente non funziona...

    <html>
    <head>
    <Title> Prova </title>

    <script>

    function init() {
    poptex1 = poptextdiv1.style;
    poptex2 = poptextdiv2.style;
    poptex3 = poptextdiv3.style;
    poptex4 = poptextdiv4.style;
    poptex5 = poptextdiv5.style;
    poptex6 = poptextdiv6.style;
    }

    var tabshow1=0;
    var tabshow2=0;
    var tabshow3=0;
    var tabshow4=0;
    var tabshow5=0;
    var tabshow6=0;

    function showhidepop1() {
    hideall();

    if (tabshow1 == 0) {
    {
    poptext1.visibility = "visible";
    tabshow1 = 1;

    }
    }
    }

    function showhidepop2() {
    hideall();

    if (tabshow2 == 0) {
    {
    poptext2.visibility = "visible";
    tabshow2 = 1;

    }
    }
    }

    function showhidepop3() {
    hideall();

    if (tabshow3 == 0) {
    {
    poptext3.visibility = "visible";
    tabshow3 = 1;

    }
    }
    }

    function showhidepop4() {
    hideall();

    if (tabshow4 == 0) {
    {
    poptext4.visibility = "visible";
    tabshow4 = 1;

    }
    }
    }

    function showhidepop5() {
    hideall();

    if (tabshow5 == 0) {
    {
    poptext5.visibility = "visible";
    tabshow5 = 1;

    }
    }
    }

    function showhidepop6() {
    hideall();

    if (tabshow6 == 0) {
    {
    poptext6.visibility = "visible";
    tabshow6 = 1;

    }
    }
    }

    function hideall() {

    {
    poptext1.visibility = "hidden";
    poptext2.visibility = "hidden";
    poptext3.visibility = "hidden";
    poptext4.visibility = "hidden";
    poptext5.visibility = "hidden";
    poptext6.visibility = "hidden";
    tabshow1 = 0;
    tabshow2 = 0;
    tabshow3 = 0;
    tabshow4 = 0;
    tabshow5 = 0;
    tabshow6 = 0;

    }
    }
    </script>

    <style>
    #poptextdiv1 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:4px;
    left:4px;
    z-index:3;
    width:180;
    }

    #poptextdiv2 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:26px;
    left:4px;
    z-index:3;
    width:180;
    }

    #poptextdiv3 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:48px;
    left:4px;
    z-index:3;
    width:180;
    }

    #poptextdiv4 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:70px;
    left:4px;
    z-index:3;
    width:180;
    }

    #poptextdiv5 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:92px;
    left:4px;
    z-index:3;
    width:180;
    }

    #poptextdiv6 {
    font-family:tahoma,arial,geneva;
    visibility:hidden;
    position:absolute;
    top:114px;
    left:4px;
    z-index:3;
    width:180;
    }

    </style>
    </head>

    <body bgcolor="#ffffff" onload="init()">

    &nbsp

    <div align="left" style="position:absolute; left:0px; top:20px;">
    <table border="1" cellpadding="0">
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop1();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop2();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop3();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop4();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop5();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>
    <tr>
    <td><a href="#" target="centrale" onclick="hideall();showhidepop6();">
    <img src="1.jpg" width="180" height="18" alt="" border="0"></a>
    </td>
    </tr>

    </table>
    </div>

    <div id=poptextdiv1>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    <div id=poptextdiv2>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    <div id=poptextdiv3>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    <div id=poptextdiv4>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    <div id=poptextdiv5>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    <div id=poptextdiv6>
    <img src="2.jpg" weight="180" height="18" alt="" border="0">
    </div>

    </body>
    </html>

  8. #8
    Master Chief Petty Officer Metrox's Avatar
    Join Date
    Nov 2006
    Location
    Roma
    Posts
    2.492

    Default

    prova questo te l'ho fatto sul momento

    Creati un file html e eseguilo.

    L'immagine chiama una funzione js e gli passa l'id ( in questo caso pippo).
    La funzione cerca l'immagine pippo e gli modifica l'attributo src .

    Intendevi una cosa del genere?


    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <script type="text/javascript">
    function cambia_immagine(id_immagine)
    {
    document.getElementById(id_immagine).setAttribute('src','http://www.wayne2k1.com/images/ugly4/misc/logo.png')
    }
    </script>
    <html>
    <head>
    <title></title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </head>
    <body>
    <img id="pippo" src="http://www.google.it/intl/en_com/images/srpr/logo1w.png" onclick=cambia_immagine('pippo') />
    </body>
    </html>
    Last edited by Metrox; 2nd December 2010 at 13:42.

  9. #9
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    si questo, ora devo vedere se associando altre immagini non succedono casini, perchè ora mi mancherebbe una sorta di funzione hideall o pulisci che riporta la situazione a 0 quando clicco su un'altro pulsante.

    E che cazz...ora non mi funge l'onmouseover
    Last edited by Shub; 2nd December 2010 at 13:55.

  10. #10
    Master Chief Petty Officer Metrox's Avatar
    Join Date
    Nov 2006
    Location
    Roma
    Posts
    2.492

    Default

    Quote Originally Posted by Shub View Post
    si questo, ora devo vedere se associando altre immagini non succedono casini, perchè ora mi mancherebbe una sorta di funzione hideall o pulisci che riporta la situazione a 0 quando clicco su un'altro pulsante.
    guarda visto che stai facendo una pulsantiera (quindi immagino saranno 10 pulsanti?!)

    Li richiami uno per uno e li reimposti al valore di default.

    Poi chiami l'unico da cambiare e vaffanculo

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <script type="text/javascript">
    function cambia_immagine(id_immagine)
    {
    
    document.getElementById('id_immagine_1').setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png')
    document.getElementById('id_immagine_2').setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png')
    document.getElementById('id_immagine_3').setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png')
    document.getElementById('id_immagine_4').setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png')
    document.getElementById('id_immagine_5').setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png')
    
    
    document.getElementById(id_immagine).setAttribute('src','http://www.wayne2k1.com/images/ugly4/misc/logo.png')
    }
    </script>
    <html>
    <head>
    <title></title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </head>
    <body>
    <img id="pippo" src="http://www.google.it/intl/en_com/images/srpr/logo1w.png" onclick=cambia_immagine('pippo') />
    </body>
    </html>
    ovviamente gli id "id_immagine_1" , "id_immagine_2" ecc saranno gli id delle immagini della tastiera.

    Se invece i pulsanti aumentano e non sono statici allora li farei un ciclo che ti carica tutte le immagini e te le cambia..ma li c'è da perderci un pò di tempo

  11. #11
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    I pulsanti sono statici, rimangono sempre loro e l'unico attributo che devono avere è l'onmouseover e stop.

    Poi caricano una pagina e fine li..ora li provo se ho ancora bisogno ti rirompo, ma spero di no

    Grazie mille già da ora.

  12. #12
    Lieutenant
    Join Date
    Jan 2007
    Location
    Roma
    Posts
    4.723

    Default

    visto che puo' essere premuto un solo pulsante per volta, ti basta un unica variabile globale,

    var bottone_premuto;

    nell'onclick di ogni pulsante:

    function(){

    if(bottone_premuto && bottone_premuto!=null){
    //resetta bottone premuto
    }

    //premi questo bottone

    bottone_premuto = this;
    }


    questo se non ho capito male ...

    Last Exile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unknowns
    Nuida FollettoInLutto Bard Tiarna . . . . . . . . . . . . . . . . Deo The Undaunted Rune Priest
    Amiag Blademaster Silver Hand. . . . . . . . . . . . . . Viol The Sacrificed Shadow Warrior
    Viola Vampiir Grove Protector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nero Incubus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DarkBane
    Naida Cabalist Phoenix Knight. . . . . . . . . . . . . . . . . . . . . . . . . . . . Viole No-Stealth Scout

  13. #13
    Lieutenant Commander Shub's Avatar
    Join Date
    Oct 2003
    Location
    Firenze
    Posts
    26.128

    Default

    mi son perso....

    il pulsante a deve diventare il pulsante a1 mentre b, c, d, e ed f rimangono fermi.
    se clicco su b, a1 deve tornare a, b deve diventare b1, c, d, e ed f rimangono fermi e così via.

    possibilmente se passo con il mouse su a, b, c, d, e ed f devono diventare aover, bover ecc....

    Quindi per ora usando quello che ha messo metrox riesco a far cambiare a in a1 ma anche b mi diventa a1...e non mi funge l'onmouseover....

  14. #14
    Master Chief Petty Officer Metrox's Avatar
    Join Date
    Nov 2006
    Location
    Roma
    Posts
    2.492

    Default

    Quote Originally Posted by Shub View Post
    mi son perso....
    il pulsante a deve diventare il pulsante a1 mentre b, c, d, e ed f rimangono fermi.
    se clicco su b, a1 deve tornare a, b deve diventare b1, c, d, e ed f rimangono fermi e così via.
    possibilmente se passo con il mouse su a, b, c, d, e ed f devono diventare aover, bover ecc....
    Quindi per ora usando quello che ha messo metrox riesco a far cambiare a in a1 ma anche b mi diventa a1...e non mi funge l'onmouseover....
    cosa intendi non ti funge l'onmouseover?
    se esegui la funzione onmouseover invece che onclick funziona.
    Comunque per quanto riguarda a in a1 e b in a1 ti tocca parametrizzare l'immagine che vuoi visualizzare.
    O nella funzione gli passi un altro parametro con il nome della nuova immagine o te li definisci all'interno della funzione e a seconda dell'id li usi.
    io farei però così
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <script type="text/javascript">
    function cambia_immagine(id_immagine,nome_img){
    document.getElementById(id_immagine).setAttribute('src',nome_img);
    }
    function torna_immagine(id_immagine){
    document.getElementById(id_immagine).setAttribute('src','http://www.google.it/intl/en_com/images/srpr/logo1w.png');
    }
    </script>
    <html>
    <head>
    <title></title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </head>
    <body>
    <img id="pippo" src="http://www.google.it/intl/en_com/images/srpr/logo1w.png" onmouseout=torna_immagine('pippo') onmouseover=cambia_immagine('pippo','http://www.wayne2k1.com/images/ugly4/misc/logo.png') />
    </body>
    </html>
    in pratica ora nella funzione oltre a passargli l'id gli passi anche il nome dell'immagine da caricare.

    Poi non ho capito perchè puoi avere solo l'onmouseover.

    Ti ho aggiunto anche l'onmouseout che ti riporta la situazione all'imagine precedente.

    Comunque è una soluzione che funziona ma non è proprio una roba elegante

  15. #15
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    c'è il tag code shub è_é
    cmq ho capito che devi fare, ma non so aiutarti

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 111.15 Kb. compressed to 96.07 Kb. by saving 15.08 Kb. (13.56%)]