Στο σύγχρονο ιστό υπάρχουν πολλές τεχνικές που μπορούν να χρησιμοποιηθούν για να δημιουργηθούν ενδιαφέρουσες αλληλεπιδράσεις, αλλά το απλούστερο και πιο κομψό είναι συνήθως το CSS και συγκεκριμένα οι προσθήκες που συνοδεύουν το CSS3.
Επιστροφή στις παλιές εποχές, έπρεπε να βασιστούμε στο JavaScript για αυτό το είδος εφέ, αλλά χάρη στην ολοένα αυξανόμενη υποστήριξη για το CSS3 σε όλα τα προγράμματα περιήγησης, τώρα είναι δυνατό να δημιουργήσουμε εφέ σαν αυτά χωρίς κανένα scripting. Υπάρχουν δυστυχώς ακόμη προγράμματα περιήγησης (IE9 και παρακάτω) που δεν υποστηρίζουν το CSS3, οπότε είτε θα χρειαστείτε μια εναλλακτική λύση για τα προγράμματα περιήγησης παλαιού τύπου είτε για να αντιμετωπίσετε το αποτέλεσμα ως προοδευτική βελτίωση.
Σήμερα, θα δούμε πώς μπορούμε να εφαρμόσουμε δροσερά, αλλά τακτοποιημένα εφέ κίνησης για να δείξουμε και να αποκρύψουμε τις λεζάντες των εικόνων.
Αν προτιμάτε να ακολουθήσετε μαζί με τον κώδικα, μπορείτε κατεβάστε τα αρχεία εδώ.
Το πρώτο demo είναι το πιο απλό: η εικόνα θα πετάει προς τα δεξιά για να αποκαλύψει τη λεζάντα.
Για το CSS θα θέσουμε σχετική θέση για την τάξη demo-1 και στη συνέχεια θα ρυθμίσουμε το πλάτος και το ύψος . Θα κρύψουμε επίσης τα υπερχειλισμένα στοιχεία. Έχω θέσει επίσης μερικά βασικά στυλ για τις ετικέτες h2 και p καθώς και την ετικέτα εικόνας μου. Τώρα για την κλάση των αποτελεσμάτων μας θα θέσουμε την απόλυτη θέση και θα της δώσουμε ένα περιθώριο -15px στην κορυφή και στο κάτω μέρος. Θα χρησιμοποιήσουμε τη μετάβαση του CSS3 για να δημιουργήσουμε ένα ομαλό αποτέλεσμα. Το CSS μας μοιάζει με αυτό:
.demo-1 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-1 p,.demo-1 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-1 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-1 h2 {font-family:'Lato';font-size:20px;line-height:24px;margin:0;}.effect img {position:absolute;margin:-15px 0;right:0;top:0;cursor:pointer;-webkit-transition:top .4s ease-in-out,right .4s ease-in-out;-moz-transition:top .4s ease-in-out,right .4s ease-in-out;-o-transition:top .4s ease-in-out,right .4s ease-in-out;transition:top .4s ease-in-out,right .4s ease-in-out}.effect img.top:hover {top:-230px;right:-330px;padding-bottom:200px;padding-left:300px}
Το δεύτερο demo θα δείξει ότι η εικόνα γλιστρά κάτω. Αυτό σημαίνει ότι όταν τοποθετείτε το ποντίκι πάνω από την εικόνα, η λεζάντα θα αποκαλυφθεί πάνω από αυτήν.
Το CSS θα είναι σχεδόν το ίδιο με το πρώτο demo, εκτός από το ότι αυτή τη φορά θα μετακινήσουμε την εικόνα μας κάτω από τις ρυθμίσεις του κάτω μέρους της ιδιότητας σε -96px. Θα χρησιμοποιήσουμε επίσης τη μετάβαση του CSS3 για να δημιουργήσουμε ένα ομαλό αποτέλεσμα:
.demo-2 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-2 p,.demo-2 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-2 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-2 h2 {font-size:20px;line-height:24px;margin:0;font-family:'Lato'}.effect img {position:absolute;left:0;bottom:0;cursor:pointer;margin:-12px 0;-webkit-transition:bottom .3s ease-in-out;-moz-transition:bottom .3s ease-in-out;-o-transition:bottom .3s ease-in-out;transition:bottom .3s ease-in-out}.effect img.top:hover {bottom:-96px;padding-top:100px}h2.zero,p.zero {margin:0;padding:0}
Για το τελευταίο μας demo, θα δημιουργήσουμε ένα αποτέλεσμα καρτών. Αυτό σημαίνει ότι όταν τοποθετείτε το ποντίκι πάνω στην εικόνα, θα περιστραφεί γύρω από τον άξονά του για να αποκαλυφθεί η περιγραφή.
Στο CSS, θα ρυθμίσουμε την εικόνα του σχήματος σε μια σχετική θέση και στη συνέχεια θα αποκρύψουμε την ορατότητα της οπίσθιας όψης . Θα χρησιμοποιήσουμε επίσης τον περιστροφικό μετασχηματισμό: -180 μοίρες για τη σύλληψη και στη συνέχεια να την αλλάξουμε σε 180 μοίρες για την αιώρηση τόσο της εικόνας όσο και της λεζάντας:
.demo-3 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px}.demo-3 figure {margin:0;padding:0;position:relative;cursor:pointer;margin-left:-50px}.demo-3 figure img {display:block;position:relative;z-index:10;margin:-15px 0}.demo-3 figure figcaption {display:block;position:absolute;z-index:5;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.demo-3 figure h2 {font-family:'Lato';color:#fff;font-size:20px;text-align:left}.demo-3 figure p {display:block;font-family:'Lato';font-size:12px;line-height:18px;margin:0;color:#fff;text-align:left}.demo-3 figure figcaption {top:0;left:0;width:100%;height:100%;padding:29px 44px;background-color:rgba(26,76,110,0.5);text-align:center;backface-visibility:hidden;-webkit-transform:rotateY(-180deg);-moz-transform:rotateY(-180deg);transform:rotateY(-180deg);-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure img {backface-visibility:hidden;-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure:hover img,figure.hover img {-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);transform:rotateY(180deg)}.demo-3 figure:hover figcaption,figure.hover figcaption {-webkit-transform:rotateY(0);-moz-transform:rotateY(0);transform:rotateY(0)}