Skip to content

Instantly share code, notes, and snippets.

@CodeMyUI
Created July 2, 2017 23:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save CodeMyUI/052cb7186e3c3ae8121c59b3c4ee2d8b to your computer and use it in GitHub Desktop.
Save CodeMyUI/052cb7186e3c3ae8121c59b3c4ee2d8b to your computer and use it in GitHub Desktop.
Hero Zoom on Scroll
<header class="zoom">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/927610/pkRkVCm.jpg">
</header>
<main role="main">
<div class="content">
<h1>Zoom Hero Image on Scroll</h1>
<a href="http://webdesignerwall.com/tutorials/how-to-add-icon-fonts-to-any-element-with-css" alt="webdesignerwall.com" target="_blank">View Tutorial</a>
<p>Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Maecenas sed diam eget risus varius blandit sit amet non magna. Nulla vitae elit libero, a pharetra augue. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.</p>
<p>Curabitur blandit tempus porttitor. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</p>
<footer>
<p>A <a href="http://www.webdeisgnerwall.com" alt="web designer wall" target="_blank">webdesignerwall.com</a> Tutorial</p>
</footer>
</div>
</main>
$(window).scroll(function() {
var scroll = $(window).scrollTop();
$(".zoom img").css({
transform: 'translate3d(-50%, -'+(scroll/100)+'%, 0) scale('+(100 + scroll/5)/100+')',
//Blur suggestion from @janwagner: https://codepen.io/janwagner/ in comments
//"-webkit-filter": "blur(" + (scroll/200) + "px)",
//filter: "blur(" + (scroll/200) + "px)"
});
});
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
/* --- General Pen Styles --- */
body{
font-family: Georgia, serif;
color: #333;
font-size: 1.4rem;
line-height: 2rem;
}
a{color: #000;}
h1{
font-size: 2.6rem;
line-height: 2.6rem;
}
.content{
margin: 0 auto;
max-width: 90%;
width: 720px;
}
main{
padding: 1% 0;
position: relative;
background: #f5f5f5;
box-shadow: 0px -10px 60px rgba(0,0,0,0.25);
height: 100%;
}
footer p{
font-size: .8rem;
font-weight: bold;
color: #ccc;
}
footer a{color: #ccc;}
/* --- Important Pen Styles --- */
.zoom{
overflow: hidden;
padding-bottom: 55%;
}
.zoom img{
position: fixed;
top: 0%;
left: 50%;
max-width: 200%;
transform: translateX(-50%);
/* Thanks @bastian_fiessinger. Use when activating blur effect:
will-change: -webkit-filter, filter, transform; */
}
@media (max-width: 667px) {
h1{
font-size: 1.8rem;
line-height: 2.6rem;
text-align: left;
}
.content{
margin: 0 auto;
max-width: 90%;
width: 100%;
height: 100%;
text-align: justify;
}
.zoom{
overflow: hidden;
padding-bottom: 75%;
}
}
<link href="https://dl.dropbox.com/s/w9ywuzlvqvv7kln/codepen-template.scss" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment