I just wanted to rebuild the phone animation from "Brian Phillips". Thanks for this nice animation! :)
A Pen by Norman Dubois on CodePen.
I just wanted to rebuild the phone animation from "Brian Phillips". Thanks for this nice animation! :)
A Pen by Norman Dubois on CodePen.
| <div class="phone"> | |
| <div class="phone-shade"></div> | |
| <div class="phone-speaker"></div> | |
| <div class="phone-screen"> | |
| <div class="phone-header"> | |
| <div class="phone-menu"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post" id="first-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| <!--Post --> | |
| <div class="phone-post"> | |
| <div class="post-thumb"></div> | |
| <div class="line post-title-1"></div> | |
| <div class="line post-title-2"></div> | |
| <div class="line post-line-1"></div> | |
| <div class="line post-line-2"></div> | |
| </div> | |
| </div> <!-- Phone Screen--> | |
| <div class="phone-button"></div> | |
| </div><!--Phone --> |
| $(document).ready(function(){ | |
| $('.phone-post').addClass('active'); | |
| setTimeout(function(){ | |
| $('.phone-post').removeClass('active'); | |
| }, 1000); | |
| setInterval(function(){ | |
| $('.phone-post').addClass('active'); | |
| setTimeout(function(){ | |
| $('.phone-post').removeClass('active'); | |
| }, 1000); | |
| }, 1500); | |
| }); |
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
| $darkbluegray: rgb(65, 82, 96); | |
| $bluegray: rgb(85, 95, 107); | |
| $btnColor: rgb(73, 82, 91); | |
| $speakerColor: rgb(62, 71, 82); | |
| $black: rgb(30, 30, 30); | |
| $cream: rgb(242, 235, 226); | |
| $lightGray: rgb(176, 176, 176); | |
| $lighterGray: rgb(218, 218, 218); | |
| $borderColor: rgb(98, 96, 93); | |
| $bodyColor: rgb(102,115,133); | |
| body { | |
| background: $bodyColor; | |
| } | |
| *, *:before, *:after { | |
| box-sizing: border-box; | |
| } | |
| .clear { | |
| clear: both; | |
| } | |
| .phone { | |
| margin: 10px auto 50px auto; | |
| box-shadow: 10px 10px 10px $darkbluegray; | |
| } | |
| .phone { | |
| height: 428px; | |
| width: 226px; | |
| background: $darkbluegray; | |
| border-radius: 5px; | |
| position: relative; | |
| overflow: hidden; | |
| .phone-shade { | |
| position: absolute; | |
| height: 500px; | |
| width: 200px; | |
| left: 50%; | |
| background: $bluegray; | |
| transform: rotate(18deg); | |
| } | |
| .phone-speaker { | |
| height: 8px; | |
| width: 42px; | |
| border-radius: 4px; | |
| background: $speakerColor; | |
| position: relative; | |
| top: 23px; | |
| left: 50%; | |
| margin-left: -21px; | |
| } | |
| .phone-button { | |
| height: 40px; | |
| width: 40px; | |
| background: $btnColor; | |
| border-radius: 50%; | |
| position: absolute; | |
| left: 50%; | |
| margin-left: -20px; | |
| bottom: 10px; | |
| } | |
| .phone-screen { | |
| height: 302px; | |
| width: 208px; | |
| background: $cream; | |
| position: absolute; | |
| left: 9px; | |
| top: 58px; | |
| overflow: hidden; | |
| .phone-header { | |
| width: 100%; | |
| height: 30px; | |
| background: $black; | |
| position: relative; | |
| z-index: 3; | |
| color: white; | |
| .phone-menu { | |
| position: absolute; | |
| right: 10px; | |
| top: 9px; | |
| background: white; | |
| width: 15px; | |
| height: 2px; | |
| &:before { | |
| content: ""; | |
| width: 15px; | |
| height: 2px; | |
| top: 5px; | |
| background: $cream; | |
| position: absolute; | |
| } | |
| &:after { | |
| content: ""; | |
| width: 15px; | |
| height: 2px; | |
| top: 10px; | |
| background: $cream; | |
| position: absolute; | |
| } | |
| } | |
| } | |
| } | |
| .phone-post { | |
| padding: 15px 10px; | |
| border-bottom: 2px solid $borderColor; | |
| overflow: hidden; | |
| height: 60px; | |
| position: relative; | |
| transform: translateY(-60px); | |
| z-index: 2; | |
| &.active { | |
| animation: new-post 1s ease infinite; | |
| } | |
| } | |
| } | |
| .post-thumb { | |
| height: 29px; | |
| width: 27px; | |
| background: $lightGray; | |
| position: absolute; | |
| margin-right: 5px; | |
| } | |
| .post-title-1 { | |
| height: 4px; | |
| width: 15px; | |
| margin-top: 3px; | |
| background: $lighterGray; | |
| position: absolute; | |
| left: 44px; | |
| } | |
| .post-title-2 { | |
| height: 4px; | |
| width: 30px; | |
| margin-top: 3px; | |
| background: $lighterGray; | |
| position: absolute; | |
| left: 65px; | |
| } | |
| .post-line-1 { | |
| height: 4px; | |
| width: 150px; | |
| background: $lightGray; | |
| position: absolute; | |
| top: 27px; | |
| left: 44px; | |
| } | |
| .post-line-2 { | |
| height: 4px; | |
| width: 100px; | |
| background: $lightGray; | |
| position: absolute; | |
| top: 36px; | |
| left: 44px; | |
| } | |
| #first-post { | |
| .line { | |
| width: 0; | |
| } | |
| } | |
| #first-post.active { | |
| .post-thumb { | |
| transform: scale(0); | |
| animation: box-grow 500ms ease 500ms forwards; | |
| } | |
| .line { | |
| transition: width 500ms ease; | |
| transition-delay: 600ms; | |
| } | |
| .post-title-1 { | |
| width: 15px; | |
| } | |
| .post-title-2 { | |
| width: 30px; | |
| } | |
| .post-line-1 { | |
| width: 150px; | |
| } | |
| .post-line-2 { | |
| width: 100px; | |
| } | |
| } | |
| @keyframes new-post { | |
| 0% { | |
| transform: translateY(-100%); | |
| } | |
| 100% { | |
| transform: translateY(0px); | |
| } | |
| } | |
| @keyframes box-grow { | |
| 0% { | |
| transform: scale(0) rotate(25deg); | |
| } | |
| 60% { | |
| transform: scale(1.2) rotate(-10deg); | |
| } | |
| 100% { | |
| transform: scale(1) rotate(0); | |
| } | |
| } |
This is Animation example