for( var i = 0; i < 30 ; i++){
$('<a href="#"></a>')
.append('<div class="data">'+i+'</div>')
.append('<div class="top"><img></div>')
.append('<div class="bottom"><img></div>')
.appendTo("#container")
.find('img')
.attr('src','http://placeanything.com/AlbumArtPorn/200/200/?r='+i);
}
Don't get exited, AlbumArtPorn is just a collection by Reddit users of album art.
Now the CSS that includes the prefixes for Firefox and Webkit browsers.
body{
background:black;
}
#container img, #container a {
padding:0;
margin:0;
border:0;
width:200px;
height:200px;
}
#container a {
-webkit-perspective:200px;
-moz-perspective:200px;
perspective:200px;
float:left;
border:1px solid black;
}
.bottom, .top {
-webkit-transition: -webkit-transform 0.5s;
-moz-transition: -moz-transform 0.5s;
transition: transform 0.5s;
}
.bottom {
-webkit-transform-origin: right bottom;
-moz-transform-origin: right bottom;
transform-origin: right bottom;
}
.top{
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
transform-origin: left top;
}
#container .top, #container .bottom {
height: 100px;
overflow: hidden;
}
#container .bottom img{
margin-top: -100px;
}
#container a:hover .bottom {
-webkit-transform: rotateX( 117deg );
-moz-transform: rotateX( 117deg );
transform: rotateX( 117deg );
}
#container a:hover .top {
-webkit-transform: rotateX( -117deg );
-moz-transform: rotateX( -117deg );
transform: rotateX( -117deg );
}
.data {
position:absolute;
width:100%;
height:100%;
max-width:200px;
max-height:200px;
line-height: 197px;
color:#CCC;
font-family: Verdana, Tahoma, serif;
font-size:10px;
text-align:center;
background-image: url(http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/blackorchid.png);
opacity:0;
-webkit-transition:opacity 0.5s linear;
-moz-transition:opacity 0.5s linear;
transition:opacity 0.5s linear;
z-index:-1;
}
#container a:hover .data {
opacity:1;
}
This is just an example but for the sake of good practices lets add a fallback for browsers who don't support 3D CSS transformations (remember that IE9 does not support 3D transformations).
if( typeof document.body.style["-webkit-transform"] === "undefined" &&
typeof document.body.style["MozTransform"] === "undefined" &&
typeof document.body.style["transform"] === "undefined"){
$("#container a").on("mouseenter mouseleave",function(event){
var action = ( event.type === "mouseenter" ? "hide" : "show" );
$(this).find("img")[action]();
});
}
Don't forget to check out PlaceAnything; very useful for random but on-topic HTML placeholders.
Take care.
this is so cool,... Iván it could be nice to work with U in a very nice project that Im working on´... send me your e-mail I´m in Bogotá
ReplyDelete