It is an experiment to create parallax effect with pure CSS3 animation.
A Pen by Nirajan Basnet on CodePen.
It is an experiment to create parallax effect with pure CSS3 animation.
A Pen by Nirajan Basnet on CodePen.
<div class="container"> | |
<div class="parallax"> | |
<div class="parallax-top-left"></div> | |
<div class="parallax-top-right"></div> | |
<div class="parallax-bottom-left"></div> | |
<div class="parallax-bottom-right"></div> | |
<div class="parallax-content"> | |
<div class="parallax-front"> | |
<h2>Pure CSS Parallax Demo</h2> | |
</div> | |
<div class="parallax-back"> | |
<img src="http://www.ijailbreak.com/wp-content/uploads/2012/09/NatGeo17.jpg" class="img-responsive rounded" alt="macOS Yosemite Wallpaper"> | |
</div> | |
</div> | |
</div> | |
</div> |
html, body { | |
margin: 0; | |
padding: 0; | |
height: 100%; | |
width: 100%; | |
} | |
body { | |
background: #f5f5f5; | |
position: relative; | |
font-family: "Lato", sans-serif; | |
} | |
.container { | |
position: absolute; | |
top: 50%; | |
left: 0; | |
right: 0; | |
transform: translateY(-50%); | |
max-width: 720px; | |
margin: 0 auto; | |
padding: 20px; | |
} | |
.img-responsive { | |
display: block; | |
height: auto; | |
width: 100%; | |
max-width: 100%; | |
} | |
.rounded { | |
border-radius: 4px; | |
} | |
.parallax { | |
display: block; | |
height: auto; | |
position: relative; | |
width: auto; | |
&-content { | |
box-shadow: 0 32px 60px rgba(69, 77, 93, .3); | |
height: auto; | |
transform: perspective(1600px); | |
transform-style: preserve-3d; | |
transition: all .4s ease; | |
width: 100%; | |
&:before { | |
content: ""; | |
display: block; | |
height: 100%; | |
left: 0; | |
position: absolute; | |
top: 0; | |
width: 100%; | |
} | |
} | |
&-front { | |
align-items: center; | |
color: #fff; | |
display: flex; | |
height: 100%; | |
justify-content: center; | |
left: 0; | |
position: absolute; | |
text-align: center; | |
text-shadow: 0 0 3rem rgba(69, 77, 93, .95); | |
top: 0; | |
transform: translateZ(16px) scale(.9); | |
transition: all .4s ease; | |
width: 100%; | |
z-index: 1; | |
} | |
&-top-left { | |
height: 50%; | |
left: 0; | |
position: absolute; | |
top: 0; | |
width: 50%; | |
z-index: 300; | |
cursor: pointer; | |
&:hover ~ .parallax-content { | |
transform: perspective(1600px) rotateX(-5deg) rotateY(5deg); | |
&:before { | |
background: linear-gradient( | |
135deg, | |
rgba(255, 255, 255, .25) 0%, | |
rgba(255, 255, 255, 0) 50% | |
); | |
} | |
.parallax-front { | |
transform: translate3d(-.10px, -.10px, 16px) scale(.9); | |
} | |
} | |
} | |
&-top-right { | |
height: 50%; | |
position: absolute; | |
right: 0; | |
top: 0; | |
width: 50%; | |
z-index: 300; | |
cursor: pointer; | |
&:hover ~ .parallax-content { | |
transform: perspective(1600px) rotateX(-5deg) rotateY(-5deg); | |
&:before { | |
background: linear-gradient( | |
-135deg, | |
rgba(255, 255, 255, .25) 0%, | |
rgba(255, 255, 255, 0) 50% | |
); | |
} | |
.parallax-front { | |
transform: translate3d(.10px, -.10px, 16px) scale(.9); | |
} | |
} | |
} | |
&-bottom-left { | |
bottom: 0; | |
height: 50%; | |
left: 0; | |
position: absolute; | |
width: 50%; | |
z-index: 300; | |
cursor: pointer; | |
&:hover ~ .parallax-content { | |
transform: perspective(1600px) rotateX(5deg) rotateY(5deg); | |
&:before { | |
background: linear-gradient( | |
45deg, | |
rgba(255, 255, 255, .25) 0%, | |
rgba(255, 255, 255, 0) 50% | |
); | |
} | |
.parallax-front { | |
transform: translate3d(-.10px, .10px, 16px) scale(.9); | |
} | |
} | |
} | |
&-bottom-right { | |
bottom: 0; | |
height: 50%; | |
position: absolute; | |
right: 0; | |
width: 50%; | |
z-index: 300; | |
cursor: pointer; | |
&:hover ~ .parallax-content { | |
transform: perspective(1600px) rotateX(5deg) rotateY(-5deg); | |
&:before { | |
background: linear-gradient( | |
-45deg, | |
rgba(255, 255, 255, .25) 0%, | |
rgba(255, 255, 255, 0) 50% | |
); | |
} | |
.parallax-front { | |
transform: translate3d(.10px, .10px, 16px) scale(.9); | |
} | |
} | |
} | |
} |