Javascript Course

In this tutorial is presented a script that simulate a loading, displaying a progress bar.
When the loading progress bar is complete (reaches 100%), this script executes a JavaScript function.
You can use this script to show a banner, or any other HTML content, a certain number of seconds, then it displays a "Close" button to remove (hide) that content. Or to perform any other JavaScript instructions when the loading bar reaches 100%.
Besides the JavaScript functions, this script uses CSS styles to set the height, color, and the initial width 0 for the loading progress bar, as you can see in the code of the example below.


To use this script, add the following HTML and JavaScript code into your page, and the CSS code for the graphic styles.

Script to simulate a loading bar

<div id='loading'>Here you add the banner, or any HTML code.<div id='loadbar'>&nbsp;</div></div>
<button onclick='simLoad('loadbar');'>Click</button>

<script>
// by - coursesweb.net

var ldsec = 5; // define the number of secconds till the progress bar reaches 100%
var ldpercent = 5; // percentage for loading progress bar
var ldspeed = ldsec * 1000 / (100/ldpercent); // set the speed for progress bar

// data to be displayed in loading bar, when reaches 100%
// a tag that close the block with the content with the loading bar
var ldtxt = '<u style=\'cursor:pointer;\' onclick="document.getElementById(\'loading\').style.display=\'none\'">Close</u>'; 

// define a recursive function to set and add the progress bar
function simLoad(div) {
 // get the object with the ID from 'div', the tag which represents the progress bar
 var dvload = document.getElementById(div);
 ldpercent += 5; // increments the percentage
 if(ldpercent>100) ldpercent = 100; // ensure that percentages do not exceed 100

 // change the width of the progress bar, and display the percentage
 dvload.style.width = ldpercent+ '%';
 dvload.innerHTML = ldpercent+ '%';

 // if the percentage is less than 100, auto-calls this function
 // else, calls the function finLoad()
 if(ldpercent<100) setTimeout("simLoad('"+div+"')", ldspeed);
 else finLoad(dvload);
}

// function that can be executed when the progress bar is completed
// receives the object which contains the tag with the loading bar
function finLoad(divobj) {
 /** Here you can add JavaScript instructions to be executed when the progress bar reaches 100% **/

 // adds a close button in the loading bar, to close that block
 divobj.innerHTML = ldtxt;
}

/// simLoad('loadbar') // to display the loading bar once the page is loaded
</script>
- You can delete the "Click" button, if you call the simLoad() function in another way.

The CSS code

<style>
#loading {
 position:absolute;
 top:20%;
 left:40%;
 width:400px;
 margin:2px auto;
 border:1px solid #01da02;
 padding:3px;
 text-align:center;
}
#loading #loadbar {
 width:0%;
 height:25px;
 background-color:blue;
}
</style>
First we set the variables that define the number of seconds till the loading bar is complete, a percentage used to define the speed of the progress bar, and a HTML element that will be displayed in the progress bar when it reaches 100%.
Then is created a recursive functions, simLoad() that uses setTimeout() to auto-call itself till the percentage of the progress bar reaches 100. This function increments the width of the HTML element which represents the loading bar, and when it is completed, calls another function that can perform any JavaScript instructions you want to add in it.
See also the comments in code.

  - Example:
In the following example, the simLoad() function is accessed when a button "Click" is pressed, but if you want you can call it when the page is loaded, by deleting the three slashes at the end of the script code.
The number of secconds to complete the whole loading bar are set to 5.
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<style>
#loading {
 position:absolute;
 top:20%;
 left:40%;
 width:400px;
 margin:2px auto;
 border:1px solid #01da02;
 padding:3px;
 text-align:center;
}
#loading #loadbar {
 width:0%;
 height:25px;
 background-color:blue;
}
</style>
</head>
<body>
<h4>Example Simulate a Loading Progress Bar</h4>

 - Click on this button: <input type='button' onclick="simLoad('loadbar');" value='Click' />
<div id='loading'><img src='javascript/imgs/loading_progress.gif' alt='Simulate loading progress' width='340' height='280' /><div id='loadbar'></div></div>

<script>
// from; coursesweb.net/

var ldsec = 5; // define the number of secconds till the progress bar reaches 100%
var ldpercent = 5; // percentage for loading progress bar
var ldspeed = ldsec * 1000 / (100/ldpercent); // set the speed for progress bar

// data to be displayed in loading bar, when reaches 100%
// a tag that close the block with the content with the loading bar
var ldtxt = '<u style="cursor:pointer;" onclick="document.getElementById(\'loading\').style.display=\'none\'">Close</u>'; 

// define a recursive function to set and add the progress bar
function simLoad(div) {
 // get the object with the ID from 'div', the tag which represents the progress bar
 var dvload = document.getElementById(div);
 ldpercent += 5; // increments the percentage
 if(ldpercent>100) ldpercent = 100; // ensure that percentages do not exceed 100

 // change the width of the progress bar, and display the percentage
 dvload.style.width = ldpercent+ '%';
 dvload.innerHTML = ldpercent+ '%';

 // if the percentage is less than 100, auto-calls this function
 // else, calls the function finLoad()
 if(ldpercent<100) setTimeout("simLoad('"+div+"')", ldspeed);
 else finLoad(dvload);
}

// function that can be executed when the progress bar is completed
// receives the object which contains the tag with the loading bar
function finLoad(divobj) {
 /** Here you can add JavaScript instructions to be executed when the progress bar reaches 100% **/

 // adds a close button in the loading bar, to close that block
 divobj.innerHTML = ldtxt;
}

/// simLoad('loadbar') // to display the loading bar once the page is loaded
</script>
</body>
</html>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which tag is used to add lists into <ul> and <ol> elements?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://coursesweb.net/css/</li>
</ul>
Which value of the "display" property creates a block box for the content and ads a bullet marker?
block list-item inline-block
.some_class {
  display: list-item;
}
Which instruction converts a JavaScript object into a JSON string.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicate the PHP class used to work with HTML and XML content in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Display / Simulate a Loading Progress Bar

Last accessed pages

  1. PHP Simple HTML DOM Parser (12452)
  2. Disable button and Enable it after specified time (17532)
  3. Get Mime Type of file or string content in PHP (6229)
  4. PHP MySQL - using MySQLi (9669)
  5. Integer and Float value in Select with PDO from string to numeric (8658)

Popular pages this month

  1. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (477)
  2. CSS cursor property - Custom Cursors (81)
  3. The Mastery of Love (71)
  4. PHP-MySQL free course, online tutorials PHP MySQL code (63)
  5. CSS3 2D transforms (46)