Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154

    Pulsante immagine che resta nello stato HOVER... (Boh!)

    Con il seguente CSS ottengo l'effetto rollover su delle immagini linkate:

    #pulsante{
    width:142px;
    height:44px;
    overflow:hidden;
    background:url(../images/pulsante.gif) top left no-repeat;
    display:block;
    }
    #pulsante:hover{
    background-position:bottom left;
    }

    Ogni pulsante ha il proprio CSS. Ho così creato un menù dal quale gestire una serie di DIV nascosti. Ora mi chiedevo: posso, sempre tramite i CSS, fare in modo che quando un pulsante viene cliccato, e visualizzato quindi il DIV corrispondente, rimanga nella stato hover?
    'Sta cosa l'abbiamo, io e i miei compari, già fatta per un altro sito, ma usando PHP. C'è speranza anche con i CSS? Oppure devo riparare su JS?
    Grassie,
    goat
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

  2. #2
    Hai già provato così?

    codice:
    #pulsante:hover,
    #pulsante:active
    {
       background-position:bottom left;
    }
    Se non ricordo male, però, non vi è molta compatibilità tra i vari browser in questo caso.

  3. #3
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154
    Infatti funziona su IE ma non su FF o Safari. Che si fa? Con JavaScript posso farcela?
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

  4. #4
    Direi che puoi aggiungere una classe al CSS, diciamo così:

    codice:
    #pulsante:hover,
    .pulsante_corrente
    {
       background-position:bottom left;
    }
    e attribuirla poi al pulsante in questione mediante la solita tecnica di attribuzione delle classi via javascript.

  5. #5
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154
    Che secondo me funzionerà sicuramente. Solo... quale sarebbe la solita tecnica di attribuzione delle classi via javascript?
    So di non sapere.
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

  6. #6
    Scusa, avevo dato per scontato che sapessi di cosa stavo parlando. Faccio un esempio generico:

    codice:
    XHTML
    
    <ul id="menu">[*]<a>Uno</a>[*]<a>Due</a>[*]<a>Tre</a>[/list]
    
    
    CSS
    
    a:hover,
    .link_corrente
    {
       color:red;
    }
    
    
    Javascript
    
    window.onload = function()
    {
       var menu = document.getElementById('menu')
       var pulsanti = menu.getElementsByTagName('a')
    
       function pulisci_selezione()
       {
          for (var i = 0; i < pulsanti.length; i++)
          {
             pulsanti.item(i).removeAttribute('class')
          }
       }
    
       for (var i = 0; i < pulsanti.length; i++)
       {
          pulsanti.item(i).onclick = function()
          {
             pulisci_selezione()
             this.className = 'link_corrente'
          }
       }
    }

  7. #7
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154
    Ho fatto un paio di test con il tuo esempio, e su FF funziona bene. Per IE la cosa cambia: cliccato un link questo diventa rosso, ma lo resta anche se clicco quello successivo. A 'sta cosa come si fa ad ovviare? Intanto lo adatto al mio caso e lo testo su Safari...
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

  8. #8
    Forse caca-IE ha problemi ad interpretare questo:

    codice:
    pulsanti.item(i).removeAttribute('class')
    Si può anche scrivere come segue, anche se ovviamente è molto meno elegante ( IE ):

    codice:
    pulsanti.item(i).className = ''

  9. #9
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154
    Ok, adesso funziona su IE, FF e anche Safari.
    Ora il difficile sarà adattare i menù del sito al quale sto lavorando. Ma con la dovuta calma...
    Grazie dell'aiuto,
    goat

    PS: Internet Explorer è un'immensa e pesante croce che grava sulle spalle di tutti gli sviluppatori web. Amen.
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

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.