-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
65 lines (63 loc) · 1.58 KB
/
Copy pathmain.js
File metadata and controls
65 lines (63 loc) · 1.58 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
import string from "./css"
const player = {
id: undefined,
time: 100,
ui: {
demo: document.querySelector('#demo'),
demo2: document.querySelector('#demo2')
},
events: {
'#btnPause': 'pause',
'#btnPlay': 'play',
'#btnSlow': 'slow',
'#btnNormal': 'normal',
'#btnFast': 'fast'
},
n: 1,
init: () => {
player.ui.demo.innerText = string.substr(0, player.n)
player.ui.demo2.innerHTML = string.substr(0, player.n)
player.bindEvents()
player.play()
},
bindEvents() {
for (let key in player.events) {
if (player.events.hasOwnProperty(key)) {
const value = player.events[key]
document.querySelector(key).onclick = player[value]
}
}
},
run: () => {
player.n += 1
if (player.n > string.length){
window.clearInterval(player.id)
return
}
player.ui.demo.innerText = string.substr(0,player.n)
player.ui.demo2.innerHTML = string.substr(0,player.n)
player.ui.demo.scrollTop = player.ui.demo.scrollHeight
},
play:()=>{
player.id = setInterval(player.run,player.time)
},
pause:() =>{
window.clearInterval(player.run,player.id)
},
slow:() =>{
player.pause()
player.time = 300
player.play()
},
normal:()=>{
player.pause()
player.time = 100
player.play()
},
fast:()=>{
player.pause()
player.time = 0
player.play()
}
}
player.init()