Click the big button to add a timer
A Pen by HARUN PEHLİVAN on CodePen.
<h1>Settlers Of Catan Timers</h1> | |
<div class="timer-container"> | |
<div class="add-timer"> | |
<div class="fa fa-plus-circle"></div> | |
</div> | |
</div> |
function Timer(Element, Time, Name){ | |
var element = Element; | |
var time = Time; | |
var originalTime = Time; | |
var name = Name; | |
var interval = setInterval(timeCallBack, 1000); | |
var isPaused = false; | |
element.addEventListener("click", onClick); | |
setName(name); | |
timeCallBack(); | |
function getTimeElement(){ | |
return element.getElementsByClassName("time")[0]; | |
} | |
function getNameElement(){ | |
return element.getElementsByClassName("name")[0]; | |
} | |
function setName(name){ | |
getNameElement().textContent = name; | |
} | |
function timeCallBack(){ | |
if(time === 0){ | |
onEnd(); | |
} | |
var minutes = Math.floor(time/60); | |
var seconds = time % 60; | |
if(seconds < 10){ | |
seconds = "0" + seconds; | |
} | |
getTimeElement().textContent = minutes + ":" + seconds; | |
time -= 1; | |
} | |
function onClick(event){ | |
if(isPaused){ | |
interval = setInterval(timeCallBack, 1000); | |
}else{ | |
clearInterval(interval); | |
} | |
isPaused = !isPaused; | |
} | |
// | |
// | |
// | |
function onEnd() { | |
//var alertAudio = new Audio("https://github.com/greenido/html5timetracker/blob/master/alert.mp3"); | |
//alertAudio.play(); | |
document.body.style.backgroundColor = "red"; | |
clearInterval(interval); | |
isPaused = true; | |
time = 0; //originalTime; | |
alert("YOU ARE OUT!"); | |
} | |
} | |
// | |
// | |
// | |
function Timers(Element){ | |
var timers = [], element = Element; | |
this.addTimer = function(){ | |
var name = prompt("Enter the name of your timer"); | |
var time = prompt("Enter the length of your timer (in seconds)"); | |
name = name || "Timer " + (timers.length + 1); | |
if(isNaN(parseFloat(time))){ | |
time = 10*60; | |
} | |
time = Math.floor(time) || 10*60; | |
var timerElement = document.createElement("div"); | |
timerElement.classList.add("timer"); | |
var nameElement = document.createElement("div"); | |
nameElement.classList.add("name"); | |
timerElement.appendChild(nameElement); | |
var timeElement = document.createElement("div"); | |
timeElement.classList.add("time"); | |
timerElement.appendChild(timeElement); | |
element.appendChild(timerElement); | |
timers.push(new Timer(timerElement, time, name)); | |
} | |
element.getElementsByClassName("add-timer")[0].addEventListener("click", this.addTimer); | |
} | |
var timers = new Timers(document.getElementsByClassName("timer-container")[0]); |
Click the big button to add a timer
A Pen by HARUN PEHLİVAN on CodePen.
@import url(https://fonts.googleapis.com/css?family=Lora:700); | |
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700); | |
@import url('//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css'); | |
html, body{ | |
width: 100%; | |
height: 100%; | |
margin: 1em; | |
background: lightblue; | |
border-radius: 25px; | |
} | |
.timer-container{ | |
display: flex; | |
justify-content: flex-start; | |
flex-wrap: wrap; | |
} | |
.timer, .add-timer{ | |
width: 12em; | |
height: 13em; | |
border: 2px solid rgb(236, 90, 48); | |
margin: .5em; | |
} | |
.add-timer{ | |
order: 500; | |
border-color: #F5F5F5; | |
cursor: pointer; | |
text-align: center; | |
background: linear-gradient(to bottom, rgb(236, 90, 48) 0%, rgb(234,71,25) 100%); | |
} | |
.add-timer>*:first-child{ | |
color: #F5F5F5; | |
font-size: 6em; | |
line-height: 2.125em; | |
height: 100%; | |
opacity: 0.9; | |
} | |
.add-timer>*:first-child:hover{ | |
opacity: 1.0; | |
} | |
.timer>.name{ | |
display: block; | |
border-bottom: 2px solid rgb(234,71,25); | |
width: 100%; | |
height: 1.5em; | |
text-align:center; | |
color: #F5F5F5; | |
font-size: 1.5em; | |
line-height: 1.5em; | |
font-family: 'Lora', serif; | |
background: linear-gradient(to bottom, rgb(236, 90, 48) 0%, rgb(234,71,25) 100%); | |
} | |
.timer>.time{ | |
display: block; | |
height: calc(3.5em + 2px); | |
font-family: 'Open Sans', sans-serif; | |
text-align: center; | |
line-height: 3.5em; | |
font-size: 3em; | |
color: #2B2B2B; | |
background: linear-gradient(to bottom, rgb(245,245,245) 0%, rgb(242,242,242) 100%); | |
cursor: pointer; | |
} | |
.timer>.time:hover{ | |
background-color: rgba(20, 20, 20, 0.7); | |
} | |
h1 { | |
text-align: center; | |
font-size: 280%; | |
} |