get in touch

about me

I'm 29 years old, live in Turin (Italy) and work as a freelance designer. Mainly I collaborate with ToDo, a studio of interaction e media design.

 

visit demo page
Un semplice Slideshow di foto implementato con CSS3 e un po’ di Javascript

Slideshow

Il codice che permette lo slideshow delle foto è molto semplice. Mi sono appoggiato ai selettori del framework Javascript Mootools per semplificarmi un po’ le cose.

1. Array

//create an Array
holgaArray = $$(".photo");

via javascript registro in un array tutti gli elementi di una classe

2. onclik

$('next').addEvent('click', function(e){
    e.stop();
    if(transitionsEnd){
        increaseCounter();
        nextPhoto();
    }
});

assegno l’onclick ai pulsanti, in modo da incrementare o decrementare un contatore. La variabile Booleana “transitionEnd“, è impiegata per sapere quando la transizione precendente è terminata, viene settata a false appena clicco sul pulsante, e torna true appena ricevo la notifica che la transizione è terminata.
Una volta incrementato il contatore posso recuperare l’elemento corrente dall’Array.

3. CSS3 transitions

CSS3 transition 1
sempre via javascript assegno all’elemento corrente la classe che include la transizione.

La transizione avviene in due momenti separati. Inizialmente viene assegnata la classe “.goRight” che sposta l’immagine vesro destra. Al termine della transizione con un callback, assegno la classe “.goTop“, che riporta l’immagine alla posizione iniziale ma con uno z-index più alto.

.goRight {
    transform: translateX(-330px) rotate(-5deg);
    -webkit-transform: translateX(-330px) rotate(-5deg);
}
.goTop {
    box-shadow: 0px 0px 12px #333;
    -moz-box-shadow: 0px 0px 12px #333;
    -webkit-box-shadow: 0px 0px 12px #333;
    z-index: 100;
    transform: translateX(0px) rotate(0deg);
    -webkit-transform: translateX(0px) rotate(0deg);
}

Transitions Properties

#fotocontainer div {
    -webkit-transition: -webkit-transform ease-out .4s;
}

Questo codice si occupa di impostare le proprietà delle transizioni, come il tempo e gli easing

Listeners

//set the transition-class
$(holgaArray[actual]).set("class", "goRight");
//add a listener for webkit transitions
$(holgaArray[actual]).addEventListener('webkitTransitionEnd', backtoTop ,false );
//and remember to remove the listener when you don't need anymore
$(holgaArray[actual]).removeEventListener('webkitTransitionEnd', backtoTop ,false );

È possibile sapere quando la transizione finisce aggiungendo un listener all’elemento su cui è applicata la transizione.
È importante ricordarsi di rimuovere il listener subito dopo averlo utilizzato, ripetendo tutti i paramentri specificati nell’addEventListener

ALTRI EFFETTI

Alert

CSS3 alert trick
Quando la pagina viene visualizzata su browser non webkit, compare questo alert. Per implementarlo è stato sufficiente inserire una regola CSS specifica del webkit, in questo modo solo i browser webkit spostano la finestra dell’alert fuori dal viewport:

#alert{
    background: url(../img/bg_alert.jpg) no-repeat center top;
    color:#635e57;
 
    /* trick */
    transform: translateY(-500em);
    -webkit-transform: translateY(-500em);
}

Titoli

CSS3 text shadow + @font-face
i titoli sono stati relizzati tramite la proprietà @font-face, che include un font nella pagina e la propietà box-shadow.

@font-face {
    font-family: League;
    src: url('../font/League_Gothic.otf');
}
 
#header h1, #header h2{
    font-family: League;
    text-shadow: 0px 2px 3px #5a4432;
    margin-bottom: 0;
}

Bottoni


lo stile dei bottoni è reso tramite la proprietà border-image, l’effetto “letterpress” è ottenuto semplicemente impostando il text-shadow verso l’alto:

a.button{
    color: #bbb8b0;
    background: transparent;
    padding: 4px;
    border-image: url(../img/btn.png) 0 4 0 4 stretch stretch;
    -webkit-border-image: url(../img/btn.png) 0 4 0 4 stretch stretch;
    text-decoration: none;
    text-shadow:0px -1px 1px #53402d;
}

visualizza la DEMO o scarica i file Sorgenti

2 comments for 'CSS3 for a tribute to Holga'

  1. Lara

    Bravo. Bel lavoro!! Tra poco metterò online il mio nuovo portfolio e voglio avere da te una opinione! a presto!


  2. grazie! Avvertimi appena è on-line allora, sono curioso!

Leave a comment

CSS3 for a tribute to Holga

posted on Feb 2010

type of work: ,

An experiment about CSS3 transitions and properties. Take a look to the
demo page or download source