We’d like to add a progress bar to simulate “thinking” after form submission, prior to triggering a thank you page. Anyone have a working example?
Are you just “faking it”? As in not actually loading anything? If so you can use a simple js progress bar like this https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_progressbar_3
You can even do it in CSS http://jsfiddle.net/cherryflavourpez/Bq3Fm/
Thanks @digibomb … You’re correct, just for appearance. In this case, when a potential customer searches for specific contractor types in or near their zip, we currently match the contractor type and location instantly, but I’m looking for something to create anticipation. Something similar to the form here: https://www.instantcheckmate.com/
Ok, so this works. Just replace “I am here!” with your form code.
<html>
<head>
<script>
let intervalId; // preserve intervalID so we can cancel it later
let startTime; // preserve progressbar start time
let continueFor = 5000; // X sec
let interval = 10; // progressbar updte interval
let wait =
ms => new Promise(
r => setTimeout(r, ms)
);
let repeat =
(ms, func) => new Promise(
r => (
intervalId = setInterval(func, ms),
wait(ms).then(r)
)
);
window.onload = function() {
let div = document.getElementById("div");
let elem = document.getElementById("progress");
let startTime = new Date().valueOf();
div.hidden = true;
// this function stop the repeats, when X sec is passed.
let stop =
() => new Promise(
r => r(setTimeout(() => {
clearInterval(intervalId);
elem.hidden = true;
div.hidden = false;
}, continueFor))
);
// this function repeats to calculate progress bar value, at every interval.
repeat(intervalId, function() {
let elapse = new Date().valueOf() - startTime;
elem.value = elem.max * elapse / continueFor;
console.log(elem.value);
}).then(stop());
};
</script>
</head>
<body>
<div id="div"> I am here! </div>
<progress id="progress" max="100" value="0"></progress>
</body>
</html>
Thank you sir! @digibomb
Did it work for you?
Reply
Log in to the Unbounce Community
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.