In questo articolo vedremo come implementare un effetto sliding doors con i soli CSS sfruttando le transizioni e la pseudo-classe :target
dei CSS3. Vediamo insieme i dettagli dell'implementazione.
Partiamo da una struttura del tutto identica a quella di uno slideshow:
<div id="accordion">
<div class="slide" id="s1">
</div>
<div class="slide" id="s2">
</div>
</div>
<div id="nav">
<a href="#s1">1</a>
<a href="#s2">2</a>
</div>
Ecco come associare un azione ai link che puntano alle due slide:
#accordion {
width: 600px;
height: 400px;
border: 6px double #999;
margin: 2em auto;
overflow: hidden;
}
div.slide {
width: 300px;
height: 400px;
position: absolute;
background: #ccc;
-moz-transition: all 600ms ease-in;
-webkit-transition: all 600ms ease-in;
-o-transition: all 600ms ease-in;
-ms-transition: all 600ms ease-in;
transition: all 600ms ease-in;
position: relative;
}
#nav {
height: 50px;
margin-top: 1.5em;
text-align: center;
}
#nav a {
width: 50px;
height: 50px;
text-decoration: none;
background: #222;
color: #fff;
line-height: 50px;
text-align: center;
text-shadow: 0 1px rgba(0, 0, 0, 0.4);
border-radius: 50%;
margin: 0 1em 0 0;
display: inline-block;
}
#s1 {
top: 0;
left: 0;
}
#s2 {
background: #eee;
top: 0;
right: 0;
}
#accordion div.slide:target {
width: 600px;
}
Potete visionare l'esempio finale in questa pagina.