Skip to content

Instantly share code, notes, and snippets.

@brunorafaeI
Created June 9, 2016 09:09
Show Gist options
  • Save brunorafaeI/84a152d9a9c2e5678aafb43f13303991 to your computer and use it in GitHub Desktop.
Save brunorafaeI/84a152d9a9c2e5678aafb43f13303991 to your computer and use it in GitHub Desktop.
Hyperspace
<div class="scene">
<div class="wrap">
<div class="wall wall-right"></div>
<div class="wall wall-left"></div>
<div class="wall wall-top"></div>
<div class="wall wall-bottom"></div>
<div class="wall wall-back"></div>
</div>
<div class="wrap">
<div class="wall wall-right"></div>
<div class="wall wall-left"></div>
<div class="wall wall-top"></div>
<div class="wall wall-bottom"></div>
<div class="wall wall-back"></div>
</div>
</div>
/*
As usual, works best in webkit.
Looks pretty cool with a pattern gradient too, like from: http://lea.verou.me/css3patterns/
@ogt2 suggested an animated gif in the comments:
http://s.cdpn.io/18515/animated.gif
browser-prefixed version here:
http://codepen.io/noahblon/pen/df31a2bba32b7c347e57e2eb1c252d0d
*/
.wall{
background: url(http://s.cdpn.io/18515/PIA09959-1280x800.jpg);
background-size: cover;
}
html, body{
height: 100%;
width: 100%;
overflow: hidden;
}
body{
background: #000;
text-align: center;
}
body:before{
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.scene{
display: inline-block;
vertical-align: middle;
perspective: 5px;
perspective-origin: 50% 50%;
opacity: 0;
animation: fadeIn 3s 1 linear;
animation-fill-mode: forwards;
position: relative;
}
.wrap{
position: absolute;
width: 1000px;
height: 1000px;
left: -500px;
top: -500px;
opacity: 0;
transform-style: preserve-3d;
animation: move 12s infinite linear;
animation-fill-mode: forwards;
}
.wrap:nth-child(2){
animation: move 12s infinite linear;
animation-delay: 6s;
}
.wall {
width: 100%;
height: 100%;
position: absolute;
}
.wall-right {
transform: rotateY(90deg) translateZ(500px);
}
.wall-left {
transform: rotateY(-90deg) translateZ(500px);
}
.wall-top {
transform: rotateX(90deg) translateZ(500px);
}
.wall-bottom {
transform: rotateX(-90deg) translateZ(500px);
}
.wall-back {
transform: rotateX(180deg) translateZ(500px);
}
@keyframes move {
0%{
transform: translateZ(-500px) rotate(0deg);
opacity: 0;
}
25%{
opacity: 1;
}
75%{
opacity: 1;
}
100%{
transform: translateZ(500px) rotate(0deg);
opacity: 0;
}
}
@keyframes fadeIn {
0%{
opacity: 0;
}
100%{
opacity: 1;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment