JSFiddle - React, Tailwind, and code Playground
by evan
HTML
<div class="main-wrapper">
<h2 class="title">Interests</h2>
<div class="btn-group" id="interest-group">
<div class="draggable" draggable="true" id="game">Gaming</div>
<div class="draggable" draggable="true" id="code">Coding</div>
<div class="draggable" draggable="true" id="swim">Swimming</div>
<div class="draggable" draggable="true" id="art">Art</div>
<div class="draggable" draggable="true" id="baseball">Baseball</div>
</div>
<div class="btn-group">
<div id="interest1-container" class="drop-container">#1 Interest
<div class="drop">[Drop here]</div>
</div>
<div id="interest2-container" class="drop-container">#2 Interest
<div class="drop">[Drop here]</div>
</div>
<div id="interest3-container" class="drop-container">#3 Interest
<div class="drop">[Drop here]</div>
</div>
<div id="interest4-container" class="drop-container">#4 Interest
<div class="drop">[Drop here]</div>
</div>
<div id="interest5-container" class="drop-container">#5 Interest
<div class="drop">[Drop here]</div>
</div>
</div>
<form method="post" id="form">
<input type="hidden" name="interest1" id="interest-submit1">
<input type="hidden" name="interest2" id="interest-submit2">
<input type="hidden" name="interest3" id="interest-submit3">
<input type="hidden" name="interest4" id="interest-submit4">
<input type="hidden" name="interest5" id="interest-submit5">
<div class="btn-group">
<input class="btn btn-primary" type="submit" value="Submit">
<button class="btn" id="reset">Reset</button>
</div>
</form>
</div>
<script src="/interests.js" defer></script>
CSS
@import url('https://fonts.googleapis.com/css2?family=Encode+Sans&display=swap');
body {
margin: 0 auto;
height: calc(100vh - 80px);
text-align: center;
}
.main-wrapper {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
flex-direction: column;
font-size: 16px;
font-family: 'Encode Sans', sans-serif;
margin: 0 auto;
background-color: #F2FFFB;
color: #357376;
}
.chat-wrapper {
display: flex;
justify-content: start;
align-items: center;
min-height: 90%;
flex-direction: column;
font-size: 30px;
font-family: 'Encode Sans', sans-serif;
margin: 0 auto;
}
.room-area {
display: flex;
justify-content: end;
align-items: center;
flex-direction: column;
font-size: 30px;
font-family: 'Encode Sans', sans-serif;
margin: 0 auto;
}
input {
height: 30px;
border-radius: 5px;
}
.message-group, .room-group {
margin: 20px auto;
}
#form {
width: 80%;
margin: 0 auto;
display: flex;
flex-direction: row;
}
.message {
min-width: 300px;
text-align: left;
margin-top: 20px;
padding: 5px;
}
.btn {
text-decoration: none;
border: 2px solid black;
width: 200px;
height: auto;
font-size: 30px;
text-align: center;
border-radius: 10px;
color: black;
}
.btn-large {
text-decoration: none;
border: 2px solid black;
height: auto;
font-size: 30px;
text-align: center;
border-radius: 10px;
color: black;
margin-top: 20px;
padding: 5px;
}
.btn:hover {
background-color: black;
color: white;
cursor: pointer;
}
.btn-large:hover {
background-color: black;
color: white;
}
.navbar {
display: flex;
justify-content: space-between;
width: 100%;
height: 50px;
margin-top: 10px;
border-bottom: 3px solid rgba(0, 0, 0, 0.3);
}
.nav-link {
text-decoration: none;
font-size: 30px;
font-family: 'Ubuntu', sans-serif;
color:...
JavaScript
const form = document.getElementById('form')
//new interests
const interest1Submit = document.getElementById('interest-submit1')
const interest2Submit = document.getElementById('interest-submit2')
const interest3Submit = document.getElementById('interest-submit3')
const interest4Submit = document.getElementById('interest-submit4')
const interest5Submit = document.getElementById('interest-submit5')
const resetBtn = document.getElementById('reset')
//prior interests
let interest1 = ''
let interest2 = ''
let interest3 = ''
let interest4 = ''
let interest5 = ''
resetBtn.addEventListener('click', () => {
window.location.reload()
})
//emojis/icons?
const draggables = document.querySelectorAll('.draggable')
const interestGroup = document.getElementById('interest-group')
function applyDraggableEvents(draggable) {
draggable.addEventListener('dragstart', () => {
draggable.classList.add('dragging')
})
draggable.addEventListener('dragend', () => {
draggable.classList.remove('dragging')
})
}
const interest1Container = document.getElementById('interest1-container')
const interest2Container = document.getElementById('interest2-container')
const interest3Container = document.getElementById('interest3-container')
const interest4Container = document.getElementById('interest4-container')
const interest5Container = document.getElementById('interest5-container')
draggables.forEach(draggable => applyDraggableEvents(draggable));
const interests = {
interest1: null,
interest2: null,
interest3: null,
interest4: null,
interest5: null,
};
//swap out interests
const dropContainers = document.getElementsByClassName('drop-container');
Array.from(dropContainers).forEach(dropContainer => {
dropContainer.addEventListener('dragenter', (e) => {
e.preventDefault()
const draggable = document.querySelector('.dragging')
if (!draggable) {
return;
}
const interestName = dropContainer.getAttribute('id').split('-')[0];
const...