Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit ce1e43c

Browse files
committed
created the color picker files
1 parent 61cefa8 commit ce1e43c

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

Source-Code/ChoicePicker/index.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link rel="stylesheet" href="style.css">
7+
<title>Document</title>
8+
</head>
9+
<body>
10+
<div class="container">
11+
<h3>Enter all of the choices divided by a comma (',').
12+
<br>Press enter when you're done</h3>
13+
<textarea placeholder="enter choices here ..." id="textarea"></textarea>
14+
</div>
15+
16+
<div id="tags">
17+
<span class="tag">Choice 1 </span>
18+
<span class="tag ">Choice 2</span>
19+
<span class="tag">Choice 3</span>
20+
</div>
21+
22+
<script src="script.js"></script>
23+
</body>
24+
</html>

Source-Code/ChoicePicker/script.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
const tagsEl = document.getElementById('tags')
2+
const textarea = document.getElementById('textarea')
3+
4+
textarea.focus()
5+
6+
function createTags(input){
7+
const tags = input.split(',').filter(tag=> tag.trim()!=='').map(tag => tag.trim())
8+
tagsEl.innerHTML = ''
9+
tags.forEach(tag => {
10+
const tagEl = document.createElement('span')
11+
tagEl.classList.add( 'tag')
12+
tagEl.innerText = tag
13+
tagsEl.appendChild(tagEl)
14+
15+
});
16+
}
17+
18+
function pickRandomTag(){
19+
const tags = document.querySelectorAll('.tag')
20+
return tags[Math.floor(Math.random()* tags.length)]
21+
}
22+
23+
function highlightTag(tag){
24+
tag.classList.add('highlight')
25+
}
26+
27+
function unHighlightTag(tag){
28+
tag.classList.remove('highlight')
29+
}
30+
31+
function randomSelect() {
32+
const times = 30
33+
const interval = setInterval(()=>{
34+
const randomTag = pickRandomTag()
35+
highlightTag(randomTag)
36+
37+
setTimeout(()=>{
38+
unHighlightTag(randomTag)
39+
}, 100)
40+
}, 100)
41+
42+
setTimeout(()=>{
43+
clearInterval(interval)
44+
45+
setTimeout(()=>{
46+
const randomTag = pickRandomTag()
47+
48+
highlightTag(randomTag)
49+
}, 100)
50+
}, times * 100)
51+
}
52+
53+
textarea.addEventListener('keyup', (e) =>{
54+
createTags(e.target.value)
55+
if(e.key === 'Enter'){
56+
setTimeout(() => {
57+
e.target.value = ''
58+
}, 10)
59+
randomSelect()
60+
}
61+
})

Source-Code/ChoicePicker/style.css

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
*{
2+
box-sizing: border-box;
3+
}
4+
5+
body{
6+
background-color: blueviolet;
7+
font-family: 'Roboto', sans-serif;
8+
display: flex;
9+
flex-direction: column;
10+
align-items: center;
11+
justify-content: center;
12+
height: 100vh;
13+
overflow: hidden;
14+
margin: 0;
15+
}
16+
h3{
17+
color: white;
18+
margin: 10px 0 20px;
19+
text-align: center;
20+
}
21+
.container{
22+
width: 500px
23+
}
24+
25+
textarea {
26+
border: none;
27+
display: block;
28+
width: 100%;
29+
height: 100px;
30+
font-family: inherit;
31+
padding: 10px;
32+
font-size: 16px;
33+
margin: 0 0 20px;
34+
}
35+
36+
.tag {
37+
background-color: #f0932b;
38+
color: white;
39+
border-radius: 50px;
40+
padding: 10px 20px;
41+
margin: 0 5px 10px 0;
42+
font-size: 14px;
43+
display: inline-block;
44+
}
45+
46+
.tag.highlight {
47+
background-color: plum;
48+
}

0 commit comments

Comments
 (0)