-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypingAnimation.js
More file actions
69 lines (55 loc) · 1.77 KB
/
typingAnimation.js
File metadata and controls
69 lines (55 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// List of sentences
var _CONTENT = [
"Twinkle, twinkle, little star",
"How I wonder what you are",
"Up above the world so high",
"Like a diamond in the sky",
];
// Current sentence being processed
var _PART = 0;
// Character number of the current sentence being processed
var _PART_INDEX = 0;
// Holds the handle returned from setInterval
var _INTERVAL_VAL;
// Element that holds the text
var _ELEMENT = document.querySelector("#text");
// Cursor element
var _CURSOR = document.querySelector("#cursor");
// Implements typing effect
function Type() {
// Get substring with 1 characater added
var text = _CONTENT[_PART].substring(0, _PART_INDEX + 1);
_ELEMENT.innerHTML = text;
_PART_INDEX++;
// If full sentence has been displayed then start to delete the sentence after some time
if (text === _CONTENT[_PART]) {
// Hide the cursor
_CURSOR.style.display = "none";
clearInterval(_INTERVAL_VAL);
setTimeout(function () {
_INTERVAL_VAL = setInterval(Delete, 50);
}, 1000);
}
}
// Implements deleting effect
function Delete() {
// Get substring with 1 characater deleted
var text = _CONTENT[_PART].substring(0, _PART_INDEX - 1);
_ELEMENT.innerHTML = text;
_PART_INDEX--;
// If sentence has been deleted then start to display the next sentence
if (text === "") {
clearInterval(_INTERVAL_VAL);
// If current sentence was last then display the first one, else move to the next
if (_PART == _CONTENT.length - 1) _PART = 0;
else _PART++;
_PART_INDEX = 0;
// Start to display the next sentence after some time
setTimeout(function () {
_CURSOR.style.display = "inline-block";
_INTERVAL_VAL = setInterval(Type, 100);
}, 200);
}
}
// Start the typing effect on load
_INTERVAL_VAL = setInterval(Type, 100);