A present for Alessandro
A Christmas present for my friend Alessandro.
by William Green
HTML
<div id="projectContainer">
<div id="scrollButtonUp" class="scrollIndicator">
<span style="font-size:4vh; color:#333; line-height:4vh;">⇑</span>
<br> Scroll Up
</div>
<div id="projectContainer">
<div id="messageOne" class="message" style="display:block;">
<div class="messageContent">
<div class="superTextContainer">
<div class="textContainer">
Dear Alessandro
</div>
<div id="messageOneBow">
<div></div>
<div></div>
</div>
</div>
</div>
</div>
<div id="messageTwo" class="message">
<div class="superTextContainer">
<div class="textContainer" style="font-size:7vh;">
Thank you for over a year of your friendship!
</div>
</div>
</div>
<div id="messageThree" class="message">
<div class="superTextContainer">
<div class="textContainer" style="font-size:7vh; padding-left:2vw; padding-right:2vw;">
Thank you for taking time to Skype with us.
</div>
</div>
</div>
<div id="messageFour" class="message">
<div class="superTextContainer">
<div class="textContainer" style="font-size:7vh; padding-left:2vw; padding-right:2vw;">
It's awesome to be apart of the K'nex community together.
</div>
</div>
</div>
<div id="messageFive" class="message">
<div class="superTextContainer">
<div class="textContainer" style="font-size:7vh; padding-left:2vw; padding-right:2vw;">
I still remember the first time we video Skyped.
</div>
</div>
</div>
<div id="messageSix" class="message">
<div class="superTextContainer">
<div class="textContainer" style="font-size:7vh; padding-left:2vw; padding-right:2vw;">
You have been a wonderful friend!
</div>
</div>
</div>
<div id="messageSeven" class="message">
<div class="superTextContainer">
<div class="textContainer" style="color:#ff0000; font-weight:400;">
Merry...
CSS
@import url(https://fonts.googleapis.com/css?family=Raleway:100,400);
@import url(https://fonts.googleapis.com/css?family=Lato:100,400);
html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background-color: #333;
overflow: hidden;
}
html{
display:none;
opacity:0;
transition:opacity 1s ease;
}
#projectContainer {
width: 100%;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
position: absolute;
}
#projectContainer * {
-o-transition: all .7s ease;
-moz-transition: all .7s ease;
-webkit-transition: all .7s ease;
-ms-transition: all .7s ease;
transition: all .7s ease;
}
.message {
-o-transition: transform .7s, left 2s ease, block 0s;
-moz-transition: transform .7s, left 2s ease, block 0s;
-webkit-transition: transform .7s, left 2s, block 0s;
-ms-transition: transform .7s, left 2s, block 0s;
transition: transform .7s, left 2s, block 0s;
color: #333;
padding-top: 8vh;
padding-bottom: 8vh;
/*padding-left:1vw;
padding-right:1vw;*/
-o-box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
word-wrap: break-word;
overflow:hidden;
width: 100%;
height: 100%;
background-color: #fff;
position: absolute;
}
.messageContent{
width:100%;
height:100%;
background-color:transparent;
position:relative;
z-index:10000;
overflow:auto;
}
* {
font-family: 'Raleway', sans-serif;
/*font-family: 'Lato', sans-serif;*/
font-weight: 100;
color: #fff;
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
-webkit-font-smoothing: subpixel-antialiased;
}
/*specific message styles*/
.superTextContainer {
position: absolute;
top: 50%;
-o-transform: translate(0%, -50%);
-moz-transform: translate(0%, -50%);
-webkit-transform: translate(0%, -50%);
-ms-transform: translate(0%, -50%);
transform: translate(0%, -50%);
width: 100%;
/*padding-right:2vw;*/
...
JavaScript
window.addEventListener('load', function() {
var superContainer = document.documentElement;
var scrollIndicatorTransitionTime = 1000; //based on transition time of the scroll indicator labels
createSnowFlakes();
function createSnowFlakes(){
var xLimit = Math.floor(window.innerWidth/100)*10;
var yLimit = Math.floor(window.innerHeight/20)*10;
var snowflakeContainers = document.getElementsByClassName('snowFlakes');
var snowflakeContainers = document.getElementsByClassName('snowFlakes');
for(var i = 0; i < snowflakeContainers.length; i++){
snowflakeContainers[i].children[0].innerHTML = '';
}
for(var i = 0; i < snowflakeContainers.length; i++){
var currentContainer = snowflakeContainers[i];
var currentYContainer = snowflakeContainers[i].getElementsByClassName('snowflakeYContainer')[0];
for(var k = 0; k < yLimit; k++){
//y snow flakes
var snowflake = document.createElement('div');
snowflake.className = 'snowflake';
var dimensions = getRandomDimensions();
snowflake.style.width = dimensions;
snowflake.style.height = dimensions;
snowflake.style.top = getRandomYPosition();
snowflake.style.left = getRandomXPosition();
currentYContainer.appendChild(snowflake);
}
}
function getRandomDimensions(){
return Math.floor(Math.random()*(6 - 2 +1))+2+'px';
}
function getRandomYPosition(){
return Math.floor(Math.random()*10*window.innerHeight)+'px';
}
function getRandomXPosition(){
return Math.floor(Math.random()*window.innerWidth)+'px';
}
}
window.setInterval(function(){
var snowflakeYContainers = document.getElementsByClassName('snowflakeYContainer');
var randomYContainer = snowflakeYContainers[Math.floor(Math.random()*snowflakeYContainers.length)];
randomYContainer.style.left = Math.floor(Math.random()*30)+'vw';
},500);
//load background audio
//Google Source:...