<div id="box1" class="shake bounce box1closed">
    <img id="box-top1" src="http://ericanton.co/archive/patterson/present/img/box-top.png">
    </div><!-- end #box1 -->
      
    <div id="box2" class="box2closed hideBox">
      <img id="box-top2" src="http://ericanton.co/archive/patterson/present/img/box-top2.png">
    </div><!-- end #box2 -->
        
    <div id="box3" class="box3closed hideBox">
      <img id="box-top3" src="http://ericanton.co/archive/patterson/present/img/box-top3.png">
      
      <div id="greeting" class="greetingClosed">
        <h1>Happy Holidays!</h1>
      </div><!-- end #greeting -->
    </div><!-- end #box3 -->
    
    <img id="box-bottom3" class="hideBox" src="http://ericanton.co/archive/patterson/present/img/box-bottom3.png">
    
    <img id="box-bottom2" class="hideBox" src="http://ericanton.co/archive/patterson/present/img/box-bottom2.png">
    
    <img id="box-bottom1" src="http://ericanton.co/archive/patterson/present/img/box-bottom.png">
@font-face {
    font-family: 'clarendontligregular';
    src: url('http://ericanton.co/fonts/clarendon/clarendontlig-webfont.eot');
    src: url('http://ericanton.co/fonts/clarendon/clarendontlig-webfont.eot?#iefix') format('embedded-opentype'),
         url('http://ericanton.co/fonts/clarendon/clarendontlig-webfont.woff') format('woff'),
         url('http://ericanton.co/fonts/clarendon/clarendontlig-webfont.ttf') format('truetype'),
         url('http://ericanton.co/fonts/clarendon/clarendontlig-webfont.svg#clarendontligregular') format('svg');
    font-weight: normal;
    font-style: normal;
    -webkit-font-smoothing: antialiased;
}

body{
  background-image: url('http://ericanton.co/archive/patterson/present/img/bg_pattern.jpg');
  background-repeat: repeat;
  background-color: #03512a;
  margin: 50px;
  padding: 0;
font-family: 'clarendontligregular', Georgia, Serif;
font-size: large;
text-align:center;
}

#box1{
  position: relative;
  width: 375px;
  cursor: pointer; 
  margin: auto;
  transition: all 1s;
  -webkit-transition: all 1s;
}

.box1closed{
  height:120px;
}

.box1open{
  height:125px;
}

#box-top1{
  width: 375px;
  height: 150px;
  position: absolute;
  top:0;
  left:0;
}

#box-bottom1{
  width: 375px;
  height: 150px;
  margin: -40px auto 0 auto;
  position: relative;
  z-index: -2;
  display: block;
}

#box2{
  position: relative;
  width: 375px;
  top:50px;
  cursor: pointer; 
  margin:auto;
  transition: all 1s;
  -webkit-transition: all 1s;
}

.box2closed{
  height: 125px;
}

.box2open{
  height: 130px;
}

#box-top2{
  width: 375px;
  height: 100px;
}

#box-bottom2{
  width: 375px;
  height: 100px;
  margin: -25px auto 0 auto;
  position: relative;
  z-index: -1;
  display: block;
}

#box3{
  position: relative;
  width: 375px;
  top:50px;
  cursor: pointer; 
  margin: auto;
  transition: all 1s;
  -webkit-transition: all 1s;
  z-index: 2;
}

.box3closed{
  height: 90px;
}

.box3open{
  height: 200px;
}

#box-top3{
  width: 375px;
  height: 70px;
  position: absolute;
  top:0;
  left:0;
}

#box-bottom3{
  width: 375px;
  height: 70px;
  margin: auto;
  position: relative;
  z-index: 1;
  display: block;
}

.hideBox{
  display: none !important;
}

#greeting{
  color:#fff;
  overflow: hidden;
  margin:auto;
  padding-top:50px;
  transition: all 1s;
  -webkit-transition: all 0.5s;
text-shadow: 0px 0px 5px #03512a;
}

.greetingOpen{
  height: 100px;
}

.greetingClosed{
  height: 0px;
}

.bounce:hover{
  animation: bounce 1s infinite;
  -webkit-animation: bounce 1s infinite;
    -moz-animation: bounce 1s infinite;
    -ms-animation: bounce 1s infinite;
    -o-animation: bounce 1s infinite;
}

.shake{
  animation: shake 3s infinite;
  -webkit-animation: shake 3s infinite;
    -moz-animation: shake 3s infinite;
    -ms-animation: shake 3s infinite;
    -o-animation: shake 3s infinite;
}

@keyframes shake {
  0% { transform: rotate(0deg); }
  12% { transform: rotate(-10deg); }
  25% { transform: rotate(10deg); }
  37% { transform: rotate(0deg); }
  100% { transform: rotate(0deg); }
}

@-webkit-keyframes shake {
  0% { -webkit-transform: rotate(0deg); }
  12% { -webkit-transform: rotate(-10deg); }
  25% { -webkit-transform: rotate(10deg); }
  37% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(0deg); }
}

@-moz-keyframes shake {
  0% { -moz-transform: rotate(0deg); }
  12% { -moz-transform: rotate(-10deg); }
  25% { -moz-transform: rotate(10deg); }
  37% { -moz-transform: rotate(0deg); }
  100% { -moz-transform: rotate(0deg); }
}

@-ms-keyframes shake {
  0% { -ms-transform: rotate(0deg); }
  12% { -ms-transform: rotate(0deg); }
  25% { -ms-transform: rotate(10deg); }
  37% { -ms-transform: rotate(0deg); }
  100% { -ms-transform: rotate(0deg); }
}

@-o-keyframes shake {
  0% { -o-transform: rotate(0deg); }
  12% { -o-transform: rotate(0deg); }
  25% { -o-transform: rotate(10deg); }
  37% { -o-transform: rotate(0deg); }
  100% { -o-transform: rotate(0deg); }
}

@keyframes bounce {
  0% { top:-5px; }
  12% { top:5px; }
  25% { top:-5px; }
  37% { top:5px; }
  50% { top:-5px; }
  62% { top:5px; }
  75% { top:-5px; }
  87% { top:5px; }
  100% { top:-5px; }
}

@-webkit-keyframes bounce {
  0% { top:-5px; }
  12% { top:5px; }
  25% { top:-5px; }
  37% { top:5px; }
  50% { top:-5px; }
  62% { top:5px; }
  75% { top:-5px; }
  87% { top:5px; }
  100% { top:-5px; }
}

@-moz-keyframes bounce {
  0% { top:-5px; }
  12% { top:5px; }
  25% { top:-5px; }
  37% { top:5px; }
  50% { top:-5px; }
  62% { top:5px; }
  75% { top:-5px; }
  87% { top:5px; }
  100% { top:-5px; }
}

@-ms-keyframes bounce {
  0% { top:-5px; }
  12% { top:5px; }
  25% { top:-5px; }
  37% { top:5px; }
  50% { top:-5px; }
  62% { top:5px; }
  75% { top:-5px; }
  87% { top:5px; }
  100% { top:-5px; }
}

@-o-keyframes bounce {
  0% { top:-5px; }
  12% { top:5px; }
  25% { top:-5px; }
  37% { top:5px; }
  50% { top:-5px; }
  62% { top:5px; }
  75% { top:-5px; }
  87% { top:5px; }
  100% { top:-5px; }
}
<!-- open/close box1 -->
$("#box1").click(function(){
  if ($("#box1").hasClass("box1closed")){
    $("#box1").removeClass("box1closed shake bounce").addClass("box1open");
    $("#box2").removeClass("hideBox");
    $("#box-top2").addClass("shake bounce");
    $("#box-bottom2").removeClass("hideBox");
  }
  else {
    $("#box1").removeClass("box1open").addClass("box1closed shake bounce");
    $("#box2").removeClass("box2open").addClass("box2closed hideBox");
    $("#box3").removeClass("box3open").addClass("box3closed hideBox");
    $("#box-top2").removeClass("shake bounce");
    $("#box-bottom2").addClass("hideBox");
    $("#box-bottom3").addClass("hideBox");
    $("#greeting").removeClass("greetingOpen").addClass("greetingClosed");
    $("body").css({background:'url(http://ericanton.co/archive/patterson/present/img/bg_pattern.jpg)'});
  }
});


<!-- open/close box2 -->
$("#box2").click(function(){
  if ($("#box2").hasClass("box2closed")){
    $("#box2").removeClass("box2closed").addClass("box2open");
    $("#box3").removeClass("hideBox");
    $("#box-top2").removeClass("shake bounce");
    $("#box-top3").addClass("shake bounce");
    $("#box-bottom3").removeClass("hideBox");
  }
  else {
    $("#box2").removeClass("box2open").addClass("box2closed");
    $("#box3").removeClass("box3open").addClass("box3closed hideBox");
    $("#box-top2").addClass("shake bounce");
    $("#box-bottom3").addClass("hideBox");
    $("#greeting").removeClass("greetingOpen").addClass("greetingClosed");
    $("body").css({background:'url(http://ericanton.co/archive/patterson/present/img/bg_pattern.jpg)'});
  }
});


<!-- open/close box3 -->
$("#box3").click(function(){
  if ($("#box3").hasClass("box3closed")){
    $("#box3").removeClass("box3closed").addClass("box3open");
    $("#box-top3").removeClass("shake bounce");
    $("#greeting").removeClass("greetingClosed").addClass("greetingOpen");
    $("body").css({background:'url(http://ericanton.co/archive/patterson/present/img/bg_pattern.gif)'});
  }
  else {
    $("#box3").removeClass("box3open").addClass("box3closed");
    $("#greeting").removeClass("greetingOpen").addClass("greetingClosed");
    $("body").css({background:'url(http://ericanton.co/archive/patterson/present/img/bg_pattern.jpg)'});
  }
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js