Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    ajax: invertire rollover con Fx.Style di mootools

    Ciao, in questa pagina http://www.morfina.it/fade/index.html il motore mootools per creare l'effetto fade nel rollover di una immagine.

    il codice inserito nella pagina per richiamare l'azione è:

    codice:
    function fadein() {fadein
     new Fx.Style( "button", 'opacity', {duration: 500 } ).start(1,0.5);}
     function fadeout() {
     new Fx.Style( "button", 'opacity', {duration: 500 } ).start(0.5,1);}
     </script>

    nell'html:
    codice:
    [img]Export.jpg[/img]
    Io però vorrei che accadesse il contrario, ovvero che la mia immagine sia semitrasparente nello stato normale e con colore 100% nel rollover. Qualcuno mi può aiutare?

  2. #2
    codice:
    [img]Export.jpg[/img]

  3. #3
    Aggiungendo un'altra immagine, con il codice che hai riportato, viene a crearsi un problema con il nome "button" come puoi vedere da questa pagina di prova: http://www.morfina.it/fade/index.html

    dovrei creare tante variabili (button1, button2, button3...) quante immagini inserisco nella pagina html?

  4. #4
    Sì certo che si crea un errore: l'id deve essere unico, cioè non deve essere assegnato a più di un elemento. Invece di usare un id potresti usare una classe e poi, coi metodi di mootools assegnare agli eventi mouseover e mouseout le funzioni corrette.

    Oppure modifichi le funzioni fadein e fadeout e le rispettive chiamate:

    codice:
     function fadein(that) {
     new Fx.Style( that, 'opacity', {duration: 500 } ).start(1,0.5);
    }
    
     function fadeout(that) {
     new Fx.Style( that, 'opacity', {duration: 500 } ).start(0.5,1);
    }
    
    [img]index_files/Export.jpg[/img]
    [img]index_files/manu.jpg[/img]

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se usi un elemento fisso nella funzione è naturale che l'effetto venga applicato sempre e solo ad un elemento (e un id deve essere unico in pagina).

    Inoltre potresti usare un css o dovrai ripetere lo stile per ciascuna immagine. Così come potresti usare la funzione each di mootools per definire, al DomReady, le funzioni onmouseover/out per tutte le immagini.

    Inoltre Fx.Style diventerà Fx.Tween nella prossima release di mootools, ad ogni modo se usi Mootools 1.1 o 1.2.b2 in compatibilità backward va ancora bene

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>xhtml 1.0</title>
            
            <script type="text/javascript" src="mootools-beta-1.2b2.js"> </script>
            
            <style type="text/css">
            a img { filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; border: 0; }
            </style>
    
            <script type="text/javascript">
            window.addEvent('domready', function() {
               $$('a img').each(function(img) {
                    img.onmouseover = function() {
                         new Fx.Tween(this, 'opacity', {duration: 500 }).start(0.5,1);
                    };
                    img.onmouseout = function() {
                         new Fx.Tween(this, 'opacity', {duration: 500 }).start(1, 0.5);
                    };
    
               });
            });
            </script>
        </head>
    
    <body>
    
    [img]Export.jpg[/img]
    [img]manu.jpg[/img]
    
    </body>
    </html>

    Più ordinato e meno ridondante no?

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6

    messaggio di errore

    Ciao a tutti, mi unisco alla discussione perchè ho la stessa necessità. Non sono esperto di Mootols, ma ho seguito le ultime istruzioni e, anche se il rollover funziona, non funzionano i fade, e la console degli errori mi dice:
    this.inject is not a function

    Sapete dirmi dove sbaglio?
    C'è un altro modo in mootools per assegnare una funzione solo all'oggetto cliccato senza dover indicare la sua id?

    Grazie mille,
    michele

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.