JavaScript practice creating an interactive clock. Project for a Skillcrush Blueprint.
A Pen by Maren Vernon on CodePen.
<html> | |
<head> | |
<title>LOLCAT CLOCK</title> | |
<link href="https://fonts.googleapis.com/css?family=Bungee|Bungee+Shade|Covered+By+Your+Grace" rel="stylesheet"> | |
<link href="https://fonts.googleapis.com/css?family=Open+Sans:800" rel="stylesheet"> | |
<link rel="stylesheet" type="text/css" href="style.css"> | |
</head> | |
<body> | |
<div class="page"> | |
<header> | |
<h1>LOLCAT CLOCK</h1> | |
</header> | |
<h4> | |
I CAN HAZ TIME?? <br> | |
<span id="clock">Clock goes here</span> | |
</h4> | |
<img id="lolcatImage" src="https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/08/normalTime.jpg" alt="lolcat"> | |
<blockquote id="timeEvent">This is where time events are reported</blockquote> | |
set Wake Up Time | |
<select id="wakeUpTimeSelector"> | |
<option value="1">1 AM - 2AM</option> | |
<option value="2">2 AM - 3AM</option> | |
<option value="3">3 AM - 4AM</option> | |
<option value="4">4 AM - 5AM</option> | |
<option value="5">5 AM - 6AM</option> | |
<option value="6">6 AM - 7AM</option> | |
<option value="7">7 AM - 8AM</option> | |
<option value="8" selected>8 AM - 9AM</option> | |
<option value="9">9 AM - 10AM</option> | |
<option value="10">10 AM - 11AM</option> | |
<option value="11">11 AM - 12PM</option> | |
<option value="12">12 PM - 1PM</option> | |
<option value="13">1 PM - 2PM</option> | |
<option value="14">2 PM - 3PM</option> | |
<option value="15">3 PM - 4PM</option> | |
<option value="16">4 PM - 5PM</option> | |
<option value="17">5 PM - 6PM</option> | |
<option value="18">6 PM - 7PM</option> | |
<option value="19">7 PM - 8PM</option> | |
<option value="20">8 PM - 9PM</option> | |
<option value="21">9 PM - 10PM</option> | |
<option value="22">10 PM - 11PM</option> | |
<option value="23">11 PM - 12AM</option> | |
<option value="24">12 AM - 1AM</option> | |
</select> | |
<br> | |
set Lunch Time | |
<select id="lunchTimeSelector"> | |
<option value="1">1 AM - 2AM</option> | |
<option value="2">2 AM - 3AM</option> | |
<option value="3">3 AM - 4AM</option> | |
<option value="4">4 AM - 5AM</option> | |
<option value="5">5 AM - 6AM</option> | |
<option value="6">6 AM - 7AM</option> | |
<option value="7">7 AM - 8AM</option> | |
<option value="8">8 AM - 9AM</option> | |
<option value="9">9 AM - 10AM</option> | |
<option value="10">10 AM - 11AM</option> | |
<option value="11">11 AM - 12PM</option> | |
<option value="12" selected>12 PM - 1PM</option> | |
<option value="13">1 PM - 2PM</option> | |
<option value="14">2 PM - 3PM</option> | |
<option value="15">3 PM - 4PM</option> | |
<option value="16">4 PM - 5PM</option> | |
<option value="17">5 PM - 6PM</option> | |
<option value="18">6 PM - 7PM</option> | |
<option value="19">7 PM - 8PM</option> | |
<option value="20">8 PM - 9PM</option> | |
<option value="21">9 PM - 10PM</option> | |
<option value="22">10 PM - 11PM</option> | |
<option value="23">11 PM - 12AM</option> | |
<option value="24">12 AM - 1AM</option> | |
</select> | |
<br> | |
set Nap Time | |
<select id="napTimeSelector"> | |
<option value="1">1 AM - 2AM</option> | |
<option value="2">2 AM - 3AM</option> | |
<option value="3">3 AM - 4AM</option> | |
<option value="4">4 AM - 5AM</option> | |
<option value="5">5 AM - 6AM</option> | |
<option value="6">6 AM - 7AM</option> | |
<option value="7">7 AM - 8AM</option> | |
<option value="8">8 AM - 9AM</option> | |
<option value="9">9 AM - 10AM</option> | |
<option value="10">10 AM - 11AM</option> | |
<option value="11">11 AM - 12PM</option> | |
<option value="12">12 PM - 1PM</option> | |
<option value="13">1 PM - 2PM</option> | |
<option value="14">2 PM - 3PM</option> | |
<option value="15" selected>3 PM - 4PM</option> | |
<option value="16">4 PM - 5PM</option> | |
<option value="17">5 PM - 6PM</option> | |
<option value="18">6 PM - 7PM</option> | |
<option value="19">7 PM - 8PM</option> | |
<option value="20">8 PM - 9PM</option> | |
<option value="21">9 PM - 10PM</option> | |
<option value="22">10 PM - 11PM</option> | |
<option value="23">11 PM - 12AM</option> | |
<option value="24">12 AM - 1AM</option> | |
</select> | |
<br> | |
<button id="partyTimeButton">Party!</button> | |
<footer> | |
<p>© Skillcrush 2016</p> | |
</footer> | |
</div> | |
<script type="text/javascript" src="script.js"></script> | |
</body> | |
</html> |
JavaScript practice creating an interactive clock. Project for a Skillcrush Blueprint.
A Pen by Maren Vernon on CodePen.
var wakeuptime = 7; | |
var noon = 12; | |
var lunchtime = 12; | |
var naptime = lunchtime + 2; | |
var partytime; | |
var evening = 18; | |
// Getting it to show the current time on the page | |
var showCurrentTime = function() | |
{ | |
// display the string on the webpage | |
var clock = document.getElementById('clock'); | |
var currentTime = new Date(); | |
var hours = currentTime.getHours(); | |
var minutes = currentTime.getMinutes(); | |
var seconds = currentTime.getSeconds(); | |
var meridian = "AM"; | |
// Set hours | |
if (hours >= noon) | |
{ | |
meridian = "PM"; | |
} | |
if (hours > noon) | |
{ | |
hours = hours - 12; | |
} | |
// Set Minutes | |
if (minutes < 10) | |
{ | |
minutes = "0" + minutes; | |
} | |
// Set Seconds | |
if (seconds < 10) | |
{ | |
seconds = "0" + seconds; | |
} | |
// put together the string that displays the time | |
var clockTime = hours + ':' + minutes + ':' + seconds + " " + meridian + "!"; | |
clock.innerText = clockTime; | |
}; | |
// Getting the clock to increment on its own and change out messages and pictures | |
var updateClock = function() | |
{ | |
var time = new Date().getHours(); | |
var messageText; | |
var image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/08/normalTime.jpg"; | |
var timeEventJS = document.getElementById("timeEvent"); | |
var lolcatImageJS = document.getElementById('lolcatImage'); | |
if (time == partytime) | |
{ | |
image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/08/partyTime.jpg"; | |
messageText = "Let's party!"; | |
} | |
else if (time == wakeuptime) | |
{ | |
image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/09/cat1.jpg"; | |
messageText = "Wake up!"; | |
} | |
else if (time == lunchtime) | |
{ | |
image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/09/cat2.jpg"; | |
messageText = "Let's have some lunch!"; | |
} | |
else if (time == naptime) | |
{ | |
image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/09/cat3.jpg"; | |
messageText = "Sleep tight!"; | |
} | |
else if (time < noon) | |
{ | |
image = "https://pbs.twimg.com/profile_images/378800000532546226/dbe5f0727b69487016ffd67a6689e75a.jpeg"; | |
messageText = "Good morning!"; | |
} | |
else if (time >= evening) | |
{ | |
image = "https://upload.wikimedia.org/wikipedia/commons/8/8c/Cat_sleep.jpg"; | |
messageText = "Good evening!"; | |
} | |
else | |
{ | |
image = "https://s3.amazonaws.com/media.skillcrush.com/skillcrush/wp-content/uploads/2016/08/normalTime.jpg"; | |
messageText = "Good afternoon!"; | |
} | |
console.log(messageText); | |
timeEventJS.innerText = messageText; | |
lolcatImage.src = image; | |
showCurrentTime(); | |
}; | |
updateClock(); | |
// Getting the clock to increment once a second | |
var oneSecond = 1000; | |
setInterval( updateClock, oneSecond); | |
// Getting the Party Time Button To Work | |
var partyButton = document.getElementById("partyTimeButton"); | |
var partyEvent = function() | |
{ | |
if (partytime < 0) | |
{ | |
partytime = new Date().getHours(); | |
partyTimeButton.innerText = "Party Over!"; | |
partyTimeButton.style.backgroundColor = "#0A8DAB"; | |
} | |
else | |
{ | |
partytime = -1; | |
partyTimeButton.innerText = "Party Time!"; | |
partyTimeButton.style.backgroundColor = "#222"; | |
} | |
}; | |
partyButton.addEventListener("click", partyEvent); | |
partyEvent(); | |
// Activates Wake-Up selector | |
var wakeUpTimeSelector = document.getElementById("wakeUpTimeSelector"); | |
var wakeUpEvent = function() | |
{ | |
wakeuptime = wakeUpTimeSelector.value; | |
}; | |
wakeUpTimeSelector.addEventListener("change", wakeUpEvent); | |
// Activates Lunch selector | |
var lunchTimeSelector = document.getElementById("lunchTimeSelector"); | |
var lunchEvent = function() | |
{ | |
lunchtime = lunchTimeSelector.value; | |
}; | |
lunchTimeSelector.addEventListener("change", lunchEvent); | |
// Activates Nap-Time selector | |
var napTimeSelector = document.getElementById("napTimeSelector"); | |
var napEvent = function() | |
{ | |
naptime = napTimeSelector.value; | |
}; | |
napTimeSelector.addEventListener("change", napEvent); |
body { | |
background-color: #f16059; | |
} | |
.page { | |
width: 80%; | |
max-width: 960px; | |
margin: 50px auto; | |
text-align: center; | |
background-color: #f16059; | |
border-radius: 5px; | |
} | |
body { | |
font: 14px/26px 'Bungee', Helvetica, Arial, sans-serif; | |
color: #222; | |
margin: 0px; | |
padding: 0px; | |
text-transform: uppercase; | |
} | |
header{ | |
font-size: 24px; | |
line-height: 48px; | |
} | |
h4 { | |
font-size: 21px; | |
font-family: 'Bungee', cursive; | |
} | |
h4 #clock { | |
font-size: 36px; | |
display: block; | |
padding: 5px 0px; | |
} | |
h1, h2, h3, h6 { | |
font-family: 'Bungee Shade', cursive; | |
} | |
#lolcatImage { | |
max-width:30em | |
} | |
blockquote { | |
font: 2em/1em 'Open Sans', sans-serif; | |
-webkit-text-stroke: 1px black; | |
text-shadow: 2px 2px #000; | |
margin: -80px 0 100px 0; | |
color: #fff; | |
} | |
blockquote:before { content: '"'; } | |
blockquote:after { content: '"'; } | |
#lolcat { | |
margin: 0 auto; | |
-webkit-border-radius: 100px; | |
-moz-border-radius: 100px; | |
border-radius: 10px; | |
border:10px solid #222; | |
} | |
#wakeUpTimeSelector, #lunchTimeSelector, #napTimeSelector { | |
padding: 10px 0; | |
} | |
#partyTimeButton { | |
background-color: #222; | |
width: 300px; | |
font-family: 'Bungee', cursive; | |
font-size: 18px; | |
color: #fff; | |
border: none; | |
border-radius: 5px; | |
padding: 10px 0; | |
margin-top: 20px; | |
} | |
footer p { | |
text-transform: uppercase; | |
font-size: 12px; | |
} |