This example shows how to detect when the user has scrolled into a position and then enable an animation. This one scrolls in content from the left
Forked from Simon Codrington's Pen CSS animations on scroll - Slide in from left.
This example shows how to detect when the user has scrolled into a position and then enable an animation. This one scrolls in content from the left
Forked from Simon Codrington's Pen CSS animations on scroll - Slide in from left.
<!--For our animations to look good, the animated elements need to be able to be scrolled to. For this example I've added dummy content to the top --> | |
<div class="main-container"> | |
<div class="container"> | |
<h1>Slide in from the left </h1> | |
<p>This animation will focus on sliding an element from the left once it enters the view of the user</p> | |
</div> | |
<div class="container"> | |
<h2> | |
Our Testimonials <i class="fa fa-comment"></i></h2> | |
<p> We have worked in the industry for 15 years and have provided services to a wide range of clients.</p> | |
<p>Come and see what our clients are saying about our services. </p> | |
</div> | |
<div class="container cf"> | |
<!-- testimonial one --> | |
<div class="animation-element slide-left testimonial"> | |
<div class="header"> | |
<div class="left"> | |
<img src="https://drive.google.com/uc?export=download&id=0B7UPM0QugWUjVTdZcktRTWhNamM" /> | |
</div> | |
<div class="right"> | |
<h3>Johnathon Richard Smith</h3> | |
<h4>CEO / Manager - Auto Incorporated</h4> | |
</div> | |
</div> | |
<div class="content"><i class="fa fa-quote-left"></i> When I started using their service I was skeptical. They promised me a 300% return on my initial investment. However they came through on their word and now my business is flourishing.. <i class="fa fa-quote-right"></i> | |
</div> | |
<div class="rating"> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star-half-o"></i> | |
</div> | |
</div> | |
<!--testimonial two --> | |
<div class="animation-element slide-left testimonial"> | |
<div class="header"> | |
<div class="left"> | |
<img src="https://drive.google.com/uc?export=download&id=0B7UPM0QugWUjV3BseTMtcEU1T2M" /> | |
</div> | |
<div class="right"> | |
<h3>Joanna Hammerlton</h3> | |
<h4>Marketing Manager - Omega Creative</h4> | |
</div> | |
</div> | |
<div class="content"><i class="fa fa-quote-left"></i> Our company first enlisted their services when we had a down-turn in sales and revene. They outlined a series of steps we could take to improve our position and within a year we are making signifcant improvements.. | |
<i class="fa fa-quote-right"></i> | |
</div> | |
<div class="rating"> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star-o"></i> | |
</div> | |
</div> | |
<!--testimonial three --> | |
<div class="animation-element slide-left testimonial"> | |
<div class="header"> | |
<div class="left"> | |
<img src="https://drive.google.com/uc?export=download&id=0B7UPM0QugWUjTURta0pyMEtoUmc | |
" /> | |
</div> | |
<div class="right"> | |
<h3>Mark Jamerson</h3> | |
<h4>CEO - Generic Business</h4> | |
</div> | |
</div> | |
<div class="content"><i class="fa fa-quote-left"></i> We entered into a 12 month period of service with this company in the hopes to improve our returns. After this period we have a return of double our initial investment.. | |
<i class="fa fa-quote-right"></i> | |
</div> | |
<div class="rating"> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
</div> | |
</div> | |
<!--testimonial four --> | |
<div class="animation-element slide-left testimonial"> | |
<div class="header"> | |
<div class="left"> | |
<img src="https://drive.google.com/uc?export=download&id=0B7UPM0QugWUjb1dxcGZEYUc0Z3M" /> | |
</div> | |
<div class="right"> | |
<h3>Susan Hilton</h3> | |
<h4>Financial Officer - People Tech</h4> | |
</div> | |
</div> | |
<div class="content"><i class="fa fa-quote-left"></i> Our involvement in this company has been mutually beneficial. We were hoping for slightly higher returns, however the current level of returns are sufficient.. | |
<i class="fa fa-quote-right"></i> | |
</div> | |
<div class="rating"> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star"></i> | |
<i class="fa fa-star-o"></i> | |
<i class="fa fa-star-o"></i> | |
</div> | |
</div> | |
</div> |
var $animation_elements = $('.animation-element'); | |
var $window = $(window); | |
function check_if_in_view() { | |
var window_height = $window.height(); | |
var window_top_position = $window.scrollTop(); | |
var window_bottom_position = (window_top_position + window_height); | |
$.each($animation_elements, function() { | |
var $element = $(this); | |
var element_height = $element.outerHeight(); | |
var element_top_position = $element.offset().top; | |
var element_bottom_position = (element_top_position + element_height); | |
//check to see if this current container is within viewport | |
if ((element_bottom_position >= window_top_position) && | |
(element_top_position <= window_bottom_position)) { | |
$element.addClass('in-view'); | |
} else { | |
$element.removeClass('in-view'); | |
} | |
}); | |
} | |
$window.on('scroll resize', check_if_in_view); | |
$window.trigger('scroll'); |
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
/*These styles contain basic styles for fomatting along with our animation css*/ | |
body { | |
font-size: 16px; | |
font-family: 'Open Sans', sans-serif; | |
font-weight: 400; | |
background: #efefef; | |
line-height: 170%; | |
} | |
strong, | |
b { | |
font-weight: 600 | |
} | |
h1, | |
h2, | |
h3, | |
h4, | |
h5, | |
h6 { | |
font-weight: 300; | |
line-height: 150%; | |
} | |
i.fa { | |
color: #333; | |
} | |
*, | |
*:before, | |
*:after { | |
box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
-webkit-box-sizing: border-box; | |
} | |
/*clearfixes*/ | |
.cf:before, | |
.cf:after { | |
content: " "; | |
display: table; | |
} | |
.cf:after { | |
clear: both; | |
} | |
.main-container { | |
background: #fff; | |
max-width: 1000px; | |
margin: 25px auto 25px auto; | |
position: relative; | |
} | |
.container { | |
position: relative; | |
padding: 25px; | |
} | |
/*animation element*/ | |
.animation-element { | |
opacity: 0; | |
position: relative; | |
} | |
/*animation element sliding left*/ | |
.animation-element.slide-left { | |
opacity: 0; | |
-moz-transition: all 500ms linear; | |
-webkit-transition: all 500ms linear; | |
-o-transition: all 500ms linear; | |
transition: all 500ms linear; | |
-moz-transform: translate3d(-100px, 0px, 0px); | |
-webkit-transform: translate3d(-100px, 0px, 0px); | |
-o-transform: translate(-100px, 0px); | |
-ms-transform: translate(-100px, 0px); | |
transform: translate3d(-100px, 0px, 0px); | |
} | |
.animation-element.slide-left.in-view { | |
opacity: 1; | |
-moz-transform: translate3d(0px, 0px, 0px); | |
-webkit-transform: translate3d(0px, 0px, 0px); | |
-o-transform: translate(0px, 0px); | |
-ms-transform: translate(0px, 0px); | |
transform: translate3d(0px, 0px, 0px); | |
} | |
/*animation slide left styled for testimonials*/ | |
.animation-element.slide-left.testimonial { | |
float: left; | |
width: 47%; | |
margin: 0% 1.5% 3% 1.5%; | |
background: #F5F5F5; | |
padding: 15px; | |
box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.2); | |
border: solid 1px #EAEAEA; | |
} | |
.animation-element.slide-left.testimonial:hover, | |
.animation-element.slide-left.testimonial:active{ | |
box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.25); | |
} | |
.animation-element.slide-left.testimonial:nth-of-type(odd) { | |
width: 48.5%; | |
margin: 0% 1.5% 3.0% 0%; | |
} | |
.animation-element.slide-left.testimonial:nth-of-type(even) { | |
width: 48.5%; | |
margin: 0% 0% 3.0% 1.5%; | |
} | |
.animation-element.slide-left.testimonial .header{ | |
float: left; | |
width: 100%; | |
margin-bottom: 10px; | |
} | |
.animation-element.slide-left.testimonial .left{ | |
float: left; | |
margin-right: 15px; | |
} | |
.animation-element.slide-left.testimonial .right{ | |
float: left; | |
} | |
.animation-element.slide-left.testimonial img { | |
width: 65px; | |
height: 65px; | |
border-radius: 50%; | |
box-shadow: 0px 1px 3px rgba(51, 51, 51, 0.5); | |
} | |
.animation-element.slide-left.testimonial h3 { | |
margin: 0px 0px 5px 0px; | |
} | |
.animation-element.slide-left.testimonial h4 { | |
margin: 0px 0px 5px 0px; | |
} | |
.animation-element.slide-left.testimonial .content { | |
float: left; | |
width:100%; | |
margin-bottom: 10px; | |
} | |
.animation-element.slide-left.testimonial .rating{} | |
.animation-element.slide-left.testimonial i { | |
color: #aaa; | |
margin-right: 5px; | |
} | |
/*media queries for small devices*/ | |
@media screen and (max-width: 678px){ | |
/*testimonials*/ | |
.animation-element.slide-left.testimonial, | |
.animation-element.slide-left.testimonial:nth-of-type(odd), | |
.animation-element.slide-left.testimonial:nth-of-type(even){ | |
width: 100%; | |
margin: 0px 0px 20px 0px; | |
} | |
.animation-element.slide-left.testimonial .right, | |
.animation-element.slide-left.testimonial .left, | |
.animation-element.slide-left.testimonial .content, | |
.animation-element.slide-left.testimonial .rating{ | |
text-align: center; | |
float: none; | |
} | |
.animation-element.slide-left.testimonial img{ | |
width: 85px; | |
height: 85px; | |
margin-bottom: 5px; | |
} | |
} |