forked from khushi-purwar/WebDev-ProjectKart
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
65 lines (49 loc) · 1.39 KB
/
script.js
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
const probabilities = document.getElementById('probabilities')
const area = document.getElementById('area')
area.focus()
area.addEventListener('keyup',(e)=>{
takeWords(e.target.value)
if (e.key === 'Enter') {
setTimeout(() => {
e.target.value = ''
}, 10);
randomPick()
}
})
let takeWords=(input)=>{
const options = input.split('|').filter(option=>option.trim()!== '').map(option=>option.trim())
probabilities.innerHTML = ''
options.forEach(option => {
const optionDisplay = document.createElement('span')
optionDisplay.classList.add('option')
optionDisplay.innerText=option
probabilities.appendChild(optionDisplay)
});
}
function randomPick(){
const times = 30
const interval = setInterval(() => {
const randomOption = pickRandomOption()
highlightOption(randomOption)
setTimeout(() => {
unHighlightOption(randomOption)
}, 100);
}, 100);
setTimeout(() => {
clearInterval(interval)
setTimeout(() => {
const randomOption=pickRandomOption()
highlightOption(randomOption)
}, 100);
}, times*100);
}
function pickRandomOption(){
const options = document.querySelectorAll('.option')
return options[Math.floor(Math.random()*options.length)]
}
function highlightOption(option){
option.classList.add('highlight')
}
function unHighlightOption(option){
option.classList.remove('highlight')
}