Header Ads

Niagahoster

Parallax Landscape

Parallax Landscape

CSS Code

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
:before, :after {
  content: '';
  display: block;
  position: absolute;
  box-sizing: border-box;
}
html, body {
  height: 100%;
  overflow: hidden;
  background: #182a3d;
}
.landscape {
  position: relative;
  height: 500px;
  background: #222;
  overflow: hidden;
}
.moon {
  position: absolute;
  left: 50%;
  bottom: 100px;
  width: 350px;
  height: 350px;
  margin: 0 0 0 -175px;
  border-radius: 50%;
  background: #ccc;
}
.moon:after {
  top: 100px;
  left: 100px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.1);
  box-shadow: 120px 80px 0 rgba(0, 0, 0, 0.1), 
  100px -60px 0 -20px rgba(0, 0, 0, 0.1), 
  -70px 40px 0 -20px rgba(0, 0, 0, 0.1), 
  -20px -50px 0 -15px rgba(0, 0, 0, 0.1), 
  -20px 120px 0 -15px rgba(0, 0, 0, 0.1), 
  50px 50px 0 -15px rgba(0, 0, 0, 0.1);
}
/* Animation Setup */
.layer {
  position: absolute;
  bottom: 0;
  animation: 10s linear infinite alternate;
}
.l1 {
  z-index: 1;
  animation-name: l1;
}
.l2 {
  z-index: 2;
  animation-name: l2;
}
.l3 {
  z-index: 3;
  animation-name: l3;
}
@keyframes l1 {
  100% {
    transform: translate3d(-100px, 0, 0);
  }
}
@keyframes l2 {
  100% {
    transform: translate3d(-200px, 0, 0);
  }
}
@keyframes l3 {
  100% {
    transform: translate3d(-500px, 0, 0);
  }
}
/* Lantern Layer */
.l3 {
  bottom: 0;
  width: 1000%;
  background: #182a3d;
}
.la {
  position: absolute;
  bottom: 0;
  width: 2px;
  height: 50px;
  background: #182a3d;
  margin-right: 20px;
}
.la:before {
  top: 5px;
  left: -10px;
  width: 22px;
  height: 2px;
  background: #182a3d;
}
.la:after {
  bottom: 0;
  left: -2px;
  width: 6px;
  height: 12px;
  background: #182a3d;
}
.l {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px #fff, 0 0 25px #fff, 0 0 50px #fff;
}
.l:nth-child(1) {
  left: -10px;
}
.l:nth-child(2) {
  right: -10px;
}
.la:nth-child(1) {
  left: 100px;
}
.la:nth-child(2) {
  left: 200px;
}
.la:nth-child(3) {
  left: 300px;
}
.la:nth-child(4) {
  left: 400px;
}
.la:nth-child(5) {
  left: 500px;
}
.la:nth-child(6) {
  left: 600px;
}
.la:nth-child(7) {
  left: 700px;
}
.la:nth-child(8) {
  left: 800px;
}
.la:nth-child(9) {
  left: 900px;
}
.la:nth-child(10) {
  left: 1000px;
}
.la:nth-child(11) {
  left: 1100px;
}
.la:nth-child(12) {
  left: 1200px;
}
.la:nth-child(13) {
  left: 1300px;
}
.la:nth-child(14) {
  left: 1400px;
}
.la:nth-child(15) {
  left: 1500px;
}
.la:nth-child(16) {
  left: 1600px;
}
.la:nth-child(17) {
  left: 1700px;
}
.la:nth-child(18) {
  left: 1800px;
}
.la:nth-child(19) {
  left: 1900px;
}
.la:nth-child(20) {
  left: 2000px;
}
/* Mountain Layer */
.hills div {
  border-radius: 8%;
  transform: rotate(45deg);
}
.hills div {
  position: absolute;
}
.l1 .hills div {
  bottom: -350px;
  width: 500px;
  height: 500px;
  background: #20374f;
}
.l2 .hills div {
  bottom: -400px;
  width: 500px;
  height: 500px;
  background: #274461;
}
.l1 .hills div:nth-child(1) {
  left: -200px;
}
.l1 .hills div:nth-child(2) {
  left: 200px;
}
.l1 .hills div:nth-child(3) {
  left: 600px;
}
.l1 .hills div:nth-child(4) {
  left: 1000px;
}
.l1 .hills div:nth-child(5) {
  left: 1400px;
}
.l1 .hills div:nth-child(6) {
  left: 1800px;
}
.l1 .hills div:nth-child(7) {
  left: 2200px;
}
.l1 .hills div:nth-child(8) {
  left: 2600px;
}
.l2 .hills div:nth-child(1) {
  left: 0px;
}
.l2 .hills div:nth-child(2) {
  left: 400px;
}
.l2 .hills div:nth-child(3) {
  left: 800px;
}
.l2 .hills div:nth-child(4) {
  left: 1200px;
}
.l2 .hills div:nth-child(5) {
  left: 1600px;
}
.l2 .hills div:nth-child(6) {
  left: 2000px;
}
.l2 .hills div:nth-child(7) {
  left: 2400px;
}
.l2 .hills div:nth-child(8) {
  left: 2800px;
}
/* Codepen Preview Mode */
@media only screen and (height: 300px) {
  .landscape {
    margin-top: -250px;
  }
}

HTML Code

<div class='landscape'>
  <div class='moon'></div>
  <div class='layer l1'>
    <div class='hills'>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
    </div>
  </div>
  <div class='layer l2'>
    <div class='hills'>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
    </div>
  </div>
  <div class='layer l3'>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
    <div class='la'>
      <div class='l'></div>
      <div class='l'></div>
    </div>
  </div>
</div>

LIVE PREVIEW

See the Pen CSS Gallery - Parallax Landscape by Peternak Blog (@peternakblog) on CodePen.

Credit: Oliver Knoblich
Powered by Blogger.