Team:Calgary
From 2014.igem.org
(Difference between revisions)
(Imagine the iGem Logo is a mosquito) |
|||
Line 1: | Line 1: | ||
{{CSS/Main}} | {{CSS/Main}} | ||
+ | |||
<html> | <html> | ||
+ | <head> | ||
+ | <meta charset="utf-8"> | ||
+ | <meta name="viewport" content="width=device-width"> | ||
+ | <title>A grouped pure CSS parallax demo by Keith Clark</title> | ||
+ | <link rel="stylesheet" href="../demo.css"> | ||
+ | <style> | ||
- | + | /* Parallax base styles | |
- | + | --------------------------------------------- */ | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | .parallax { | |
- | + | height: 500px; /* fallback for older browsers */ | |
+ | height: 100vh; | ||
+ | overflow-x: hidden; | ||
+ | overflow-y: auto; | ||
+ | -webkit-perspective: 300px; | ||
+ | perspective: 300px; | ||
+ | } | ||
- | + | .parallax__group { | |
- | + | position: relative; | |
+ | height: 500px; /* fallback for older browsers */ | ||
+ | height: 100vh; | ||
+ | -webkit-transform-style: preserve-3d; | ||
+ | transform-style: preserve-3d; | ||
+ | } | ||
- | + | .parallax__layer { | |
- | + | position: absolute; | |
+ | top: 0; | ||
+ | left: 0; | ||
+ | right: 0; | ||
+ | bottom: 0; | ||
+ | } | ||
+ | .parallax__layer--fore { | ||
+ | -webkit-transform: translateZ(90px) scale(.7); | ||
+ | transform: translateZ(90px) scale(.7); | ||
+ | z-index: 1; | ||
+ | } | ||
- | + | .parallax__layer--base { | |
- | + | -webkit-transform: translateZ(0); | |
- | + | transform: translateZ(0); | |
+ | z-index: 4; | ||
+ | } | ||
- | + | .parallax__layer--back { | |
- | + | -webkit-transform: translateZ(-300px) scale(2); | |
+ | transform: translateZ(-300px) scale(2); | ||
+ | z-index: 3; | ||
+ | } | ||
+ | .parallax__layer--deep { | ||
+ | -webkit-transform: translateZ(-600px) scale(3); | ||
+ | transform: translateZ(-600px) scale(3); | ||
+ | z-index: 2; | ||
+ | } | ||
- | |||
- | |||
+ | /* Debugger styles - used to show the effect | ||
+ | --------------------------------------------- */ | ||
+ | .debug { | ||
+ | position: fixed; | ||
+ | top: 0; | ||
+ | left: .5em; | ||
+ | z-index: 999; | ||
+ | background: rgba(0,0,0,.85); | ||
+ | color: #fff; | ||
+ | padding: .5em; | ||
+ | border-radius: 0 0 5px 5px; | ||
+ | } | ||
+ | .debug-on .parallax__group { | ||
+ | -webkit-transform: translate3d(800px, 0, -800px) rotateY(30deg); | ||
+ | transform: translate3d(700px, 0, -800px) rotateY(30deg); | ||
+ | } | ||
+ | .debug-on .parallax__layer { | ||
+ | box-shadow: 0 0 0 2px #000; | ||
+ | opacity: 0.9; | ||
+ | } | ||
+ | .parallax__group { | ||
+ | -webkit-transition: -webkit-transform 0.5s; | ||
+ | transition: transform 0.5s; | ||
+ | } | ||
- | + | /* demo styles | |
+ | --------------------------------------------- */ | ||
- | + | body, html { | |
- | + | overflow: hidden; | |
- | + | } | |
+ | body { | ||
+ | font: 100% / 1.5 Arial; | ||
+ | } | ||
- | + | * { | |
- | + | margin:0; | |
- | + | padding:0; | |
- | + | } | |
- | + | .parallax { | |
+ | font-size: 200%; | ||
+ | } | ||
- | + | /* centre the content in the parallax layers */ | |
- | + | .title { | |
- | + | text-align: center; | |
- | + | position: absolute; | |
- | + | left: 50%; | |
- | + | top: 50%; | |
- | + | -webkit-transform: translate(-50%, -50%); | |
- | + | transform: translate(-50%, -50%); | |
- | + | } | |
- | + | ||
- | + | ||
- | |||
- | |||
- | + | /* style the groups | |
- | + | --------------------------------------------- */ | |
- | + | #group1 { | |
- | + | z-index: 5; /* slide over group 2 */ | |
- | + | } | |
- | + | #group1 .parallax__layer--base { | |
- | + | background: rgb(102,204,102); | |
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | + | #group2 { | |
- | + | z-index: 3; /* slide under groups 1 and 3 */ | |
+ | } | ||
+ | #group2 .parallax__layer--back { | ||
+ | background: rgb(123,210,102); | ||
+ | } | ||
+ | #group3 { | ||
+ | z-index: 4; /* slide over group 2 and 4 */ | ||
+ | } | ||
+ | #group3 .parallax__layer--base { | ||
+ | background: rgb(153,216,101); | ||
+ | } | ||
- | + | #group4 { | |
- | + | z-index: 2; /* slide under group 3 and 5 */ | |
+ | } | ||
+ | #group4 .parallax__layer--deep { | ||
+ | background: rgb(184,223,101); | ||
+ | } | ||
+ | #group5 { | ||
+ | z-index: 3; /* slide over group 4 and 6 */ | ||
+ | } | ||
+ | #group5 .parallax__layer--base { | ||
+ | background: rgb(214,229,100); | ||
+ | } | ||
- | + | #group6 { | |
- | + | z-index: 2; /* slide under group 5 and 7 */ | |
+ | } | ||
+ | #group6 .parallax__layer--back { | ||
+ | background: rgb(245,235,100); | ||
+ | } | ||
- | + | #group7 { | |
- | + | z-index: 3; /* slide over group 7 */ | |
- | + | } | |
- | < | + | #group7 .parallax__layer--base { |
+ | background: rgb(255,241,100); | ||
+ | } | ||
+ | </style> | ||
+ | </head> | ||
- | < | + | <body> |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | < | + | <div class="debug"> |
- | </ | + | <label><input type="checkbox"> Debug</label> |
+ | </div> | ||
+ | <div class="demo__info"> | ||
+ | Pure CSS parallax scroll demo #3 by Keith Clark. Please read the <a href="http://blog.keithclark.co.uk/pure-css-parallax-websites/">blog post</a> for more information. | ||
+ | </div> | ||
- | < | + | <div class="parallax"> |
- | < | + | <div id="group1" class="parallax__group"> |
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group2" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--back"> | ||
+ | <div class="title">Background Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group3" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--fore"> | ||
+ | <div class="title">Foreground Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group4" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--back"> | ||
+ | <div class="title">Background Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--deep"> | ||
+ | <div class="title">Deep Background Layer<center><img src="https://static.igem.org/mediawiki/igem.org/6/60/Igemlogo_300px.png" width="250px"></a></center></div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group5" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--fore"> | ||
+ | <div class="title">Foreground Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group6" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--back"> | ||
+ | <div class="title">Background Layer</div> | ||
+ | </div> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div id="group7" class="parallax__group"> | ||
+ | <div class="parallax__layer parallax__layer--base"> | ||
+ | <div class="title">Base Layer</div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
- | < | + | <script> |
+ | var debugInput = document.querySelector("input"); | ||
+ | function updateDebugState() { | ||
+ | document.body.classList.toggle('debug-on', debugInput.checked); | ||
+ | } | ||
+ | debugInput.addEventListener("click", updateDebugState); | ||
+ | updateDebugState(); | ||
+ | </script> | ||
- | < | + | <script type="text/javascript"> |
- | + | var _gaq = _gaq || []; | |
- | + | _gaq.push(['_setAccount', 'UA-10812217-3']); | |
- | + | _gaq.push(['_trackPageview']); | |
- | + | (function() { | |
- | + | var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |
- | + | ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |
- | + | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |
- | + | })(); | |
- | + | </script> | |
- | </ | + | </body> |
- | </ | + | </html> |
- | </ | + |
Revision as of 14:16, 13 August 2014
Pure CSS parallax scroll demo #3 by Keith Clark. Please read the blog post for more information.
Base Layer
Base Layer
Background Layer
Foreground Layer
Base Layer
Base Layer
Background Layer
Deep Background Layer
Foreground Layer
Base Layer
Background Layer
Base Layer
Base Layer