HTML preprocessors can make writing HTML more powerful or convenient. For instance, Markdown is designed to be easier to write and read for text documents and you could write a loop in Pug.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. So you don't have access to higher-up elements like the <html>
tag. If you want to add classes there that can affect the whole document, this is the place to do it.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. If you need things in the <head>
of the document, put that code here.
The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.
CSS preprocessors help make authoring CSS easier. All of them offer things like variables and mixins to provide convenient abstractions.
It's a common practice to apply CSS to a page that styles elements such that they are consistent across all browsers. We offer two of the most popular choices: normalize.css and a reset. Or, choose Neither and nothing will be applied.
To get the best cross-browser support, it is a common practice to apply vendor prefixes to CSS properties and values that require them to work. For instance -webkit-
or -moz-
.
We offer two popular choices: Autoprefixer (which processes your CSS server-side) and -prefix-free (which applies prefixes via a script, client-side).
Any URL's added here will be added as <link>
s in order, and before the CSS in the editor. You can use the CSS from another Pen by using it's URL and the proper URL extention.
You can apply CSS to your Pen from any stylesheet on the web. Just put a URL to it here and we'll apply it, in the order you have them, before the CSS in the Pen itself.
You can also link to another Pen here (use the .css
URL Extension) and we'll pull the CSS from that Pen and include it. If it's using a matching preprocessor, use the appropriate URL Extension and we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
JavaScript preprocessors can help make authoring JavaScript easier and more convenient.
Babel includes JSX processing.
Any URL's added here will be added as <script>
s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.
You can apply a script from anywhere on the web to your Pen. Just put a URL to it here and we'll add it, in the order you have them, before the JavaScript in the Pen itself.
If the script you link to has the file extension of a preprocessor, we'll attempt to process it before applying.
You can also link to another Pen here, and we'll pull the JavaScript from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
Search for and use JavaScript packages from npm here. By selecting a package, an import
statement will be added to the top of the JavaScript editor for this package.
Using packages here is powered by Skypack, which makes packages from npm not only available on a CDN, but prepares them for native JavaScript ES6 import
usage.
All packages are different, so refer to their docs for how they work.
If you're using React / ReactDOM, make sure to turn on Babel for the JSX processing.
If active, Pens will autosave every 30 seconds after being saved once.
If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.
If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.
Visit your global Editor Settings.
<header class="zoom">
<img src="http://www.goodfreephotos.com/albums/iceland/other-iceland/aerial-view-of-a-river-in-iceland.jpg">
</header>
<main role="main">
<div class="content">
<h1>Zoom Hero Image on Scroll</h1>
<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>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio temporibus laudantium reiciendis rerum? Sit odio veniam nemo praesentium culpa, quos recusandae consequuntur illum, ut soluta, repellat cum adipisci architecto libero?</span><span>Natus provident at sit excepturi, quo similique molestias consequuntur corporis aut aperiam accusantium non nihil dolores cum sapiente deleniti a error nemo molestiae laborum tenetur, laudantium harum? Ipsa, provident, vitae.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A, beatae ullam consequatur repudiandae in, quibusdam, voluptatum nostrum temporibus, tenetur non debitis sint repellat facilis numquam. Nihil cumque doloremque rerum quod.</span><span>At quia quod necessitatibus blanditiis recusandae molestias suscipit cumque, iste, odit, illo impedit explicabo delectus pariatur harum. Necessitatibus maiores voluptas, fuga quia, earum minima fugit nostrum, nulla illo pariatur similique.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci ea amet modi magni harum, itaque officia repellendus alias libero, reprehenderit mollitia nulla hic? Cupiditate laborum, aspernatur amet temporibus a non!</span><span>Ex sequi, facere, eius laboriosam animi fugiat asperiores, non quis expedita placeat quas illo nihil vitae adipisci perferendis vero? Impedit alias quas consequatur commodi labore aliquid incidunt facilis voluptatem quam!</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio tempore officiis, voluptatem ducimus sequi ut quasi harum quo ipsa nisi eveniet quis aliquid molestiae ipsum sed laudantium repudiandae dolores consectetur.</span><span>Adipisci, iure, odit. Ex aspernatur, quo laborum! Placeat in error officia quod mollitia laudantium, magni ducimus rerum minima, quos eveniet reprehenderit voluptate quibusdam veritatis dolorum, quas odit vero minus unde!</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae voluptatem, dolores! Deleniti, architecto, facilis? Quibusdam suscipit quod quasi ipsa ea, nam, nostrum blanditiis ullam sapiente non fugiat quos a mollitia.</span><span>Modi doloribus, hic voluptate quis rerum suscipit! Harum sint aspernatur quia tenetur in, amet est nemo sed provident dignissimos! Aut rerum dolorem quasi praesentium, voluptatibus aliquam accusamus enim alias fugit?</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum quos magnam fuga, accusantium eveniet ea veniam magni. Ullam voluptatibus quam, aliquam quidem. Quia repudiandae magnam accusamus vel nihil expedita praesentium!</span><span>Dignissimos possimus molestiae, doloribus quos amet, incidunt facilis voluptate doloremque natus ab iste nulla consequuntur vero repellendus, saepe veniam ut voluptatem dolorum quidem magnam ducimus ea adipisci cum. Consectetur, veniam.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo obcaecati amet, dolorum ipsa rem. Perspiciatis explicabo fugit, tempore quae laudantium ex totam! Deserunt consequuntur, dolores sequi, animi voluptates repellendus porro!</span><span>Vero, repudiandae est doloremque saepe atque officia perferendis ducimus, facilis iste accusantium assumenda itaque cum! Tempora qui inventore excepturi accusamus voluptate sunt ipsum recusandae porro! Tenetur neque quaerat mollitia perferendis.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium modi sit adipisci, maiores molestiae autem omnis velit quidem veritatis facere a incidunt laboriosam corrupti, laudantium provident, iusto fuga nisi magnam?</span><span>Odit ipsum facilis nemo pariatur aliquam asperiores blanditiis sapiente modi eum, ea dolore animi est incidunt esse quisquam assumenda explicabo deserunt odio, possimus doloremque porro voluptates commodi aspernatur nostrum! Reprehenderit.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo sapiente, labore, obcaecati consectetur illo ea, delectus deserunt odit ab incidunt asperiores quia. Labore harum, totam mollitia accusantium? Ullam, soluta, dignissimos.</span><span>Qui itaque suscipit similique dolor culpa. Quia sapiente molestias maxime cum provident error iure, adipisci maiores! Quas, exercitationem, recusandae? Temporibus dolorum excepturi alias voluptas voluptates dignissimos quod culpa illo expedita.</span></p>
<p><span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestias modi cumque hic ducimus natus aliquam corporis repellendus exercitationem nam animi obcaecati nemo, culpa non repellat aspernatur error facere alias quas.</span><span>Error amet, dolore exercitationem laboriosam possimus facere fugit id, saepe neque, recusandae explicabo totam nisi aliquam fugiat dolorum. Autem temporibus tempore tenetur numquam quo, modi in! Assumenda consectetur impedit ullam!</span></p>
</div>
</main>
/* --- General Pen Styles --- */
body{
font-family: Georgia, serif;
color: #333;
font-size: 18px;
line-height: 24px;
}
h1{
font-size: 50px;
line-height: 1.125;
}
.content{
margin: 0 auto;
max-width: 90%;
width: 720px;
}
main{
padding: 1em 0;
position: relative;
background: #f5f5f5;
box-shadow: 0px -10px 60px rgba(0,0,0,0.25);
}
/* --- Important Pen Styles --- */
.zoom{
overflow: hidden;
padding-bottom: 55%;
}
.zoom img{
position: fixed;
top: 0%;
left: 50%;
transform: translateX(-50%);
}
$(window).scroll(function() {
var scroll = $(window).scrollTop();
$(".zoom img").css({
transform: 'translate3d(-50%, -'+(scroll/100)+'%, 0) scale('+(100 + scroll/5)/100+')'
});
});
Also see: Tab Triggers