[ This is a content summary only. Visit our website https://ift.tt/1b4YgHQ for full links, other content, and more! ]
by Web Desk via Digital Information World
"Mr Branding" is a blog based on RSS for everything related to website branding and website design, it collects its posts from many sites in order to facilitate the updating to the latest technology.
To suggest any source, please contact me: Taha.baba@consultant.com
Sometimes, you’re going to need to build a JavaScript countdown clock. You may have an event, a sale, a promotion, or a game. You can build a clock in raw JavaScript rather than reaching for the nearest plugin. While there are many great clock plugins, here are the benefits you’ll get from using raw JavaScript:
So, without further ado, here’s how to make your own countdown clock in a mere 18 lines of JavaScript.
For in-depth JavaScript knowledge, read our book, JavaScript: Novice to Ninja, 2nd Edition.
Here’s a quick outline of the steps involved in creating a basic clock:
First, you’ll need to set a valid end date. This should be a string in any of the formats understood by JavaScript’s Date.parse() method. For example:
The ISO 8601 format:
const deadline = '2015-12-31';
The short format:
const deadline = '31/12/2015';
Or, the long format:
const deadline = 'December 31 2015';
Each of these formats allows you to specify an exact time and a time zone (or an offset from UTC in the case of ISO dates). For example:
const deadline = 'December 31 2015 23:59:59 GMT+0200';
You can read more about date formatting in JavaScript in this article.
The next step is to calculate the time remaining. We need to write a function that takes a string representing a given end time (as outlined above). We then calculate the difference between that time and the current time. Here’s what that looks like:
function getTimeRemaining(endtime){
const total = Date.parse(endtime) - Date.parse(new Date());
const seconds = Math.floor( (total/1000) % 60 );
const minutes = Math.floor( (total/1000/60) % 60 );
const hours = Math.floor( (total/(1000*60*60)) % 24 );
const days = Math.floor( total/(1000*60*60*24) );
return {
total,
days,
hours,
minutes,
seconds
};
}
First, we’re creating a variable total, to hold the remaining time until the deadline. The Date.parse() function converts a time string into a value in milliseconds. This allows us to subtract two times from each other and get the amount of time in between.
const total = Date.parse(endtime) - Date.parse(new Date());
Now we want to convert the milliseconds to days, hours, minutes, and seconds. Let’s use seconds as an example:
const seconds = Math.floor( (t/1000) % 60 );
Let’s break down what’s going on here.
(t/1000)(t/1000) % 60Math.floor( (t/1000) % 60 )Repeat this logic to convert the milliseconds to minutes, hours, and days.
With the days, hours, minutes, and seconds prepared, we’re now ready to return the data as a reusable object:
return {
total,
days,
hours,
minutes,
seconds
};
This object allows you to call your function and get any of the calculated values. Here’s an example of how you’d get the remaining minutes:
getTimeRemaining(deadline).minutes
Convenient, right?
Now that we have a function that spits out the days, hours, minutes, and seconds remaining, we can build our clock. First we’ll create the following HTML element to hold our clock:
<div id="clockdiv"></div>
Then we’ll write a function that outputs the clock data inside our new div:
function initializeClock(id, endtime) {
const clock = document.getElementById(id);
const timeinterval = setInterval(() => {
const t = getTimeRemaining(endtime);
clock.innerHTML = 'days: ' + t.days + '<br>' +
'hours: '+ t.hours + '<br>' +
'minutes: ' + t.minutes + '<br>' +
'seconds: ' + t.seconds;
if (t.total <= 0) {
clearInterval(timeinterval);
}
},1000);
}
This function takes two parameters. These are the id of the element that contains our clock, and the countdown’s end time. Inside the function, we’ll declare a clock variable and use it to store a reference to our clock container div. This means we don’t have to keep querying the DOM.
Next, we’ll use setInterval to execute an anonymous function every second. This function will do the following:
Continue reading Build a Countdown Timer in Just 18 Lines of JavaScript on SitePoint.
Comprehensive product demonstration in this Landing Page for Flowin, a userflow and annotation kit for Figma. Really impressed by the style-switcher as you scroll near the bottom!