INTERACTIVE MEDIA DESIGN(Finals): Popup Chatbox

 ASSIGNMENT 3.3

HTML CODE:


<!DOCTYPE html>


<html>


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title> Popup Chat </title>


<link rel="stylesheet" href="c.css">


</head>


<body>


<article>


  <header>


    <h1 style= "color: #86A24C; font-size: 50px; margin-left: 300px; margin-top: 30px;"> LET'S TALK! </h1>


  </header>


</article>


<section>


<button class="chat-btn"> <b> CLICK </b> </button>

<div id="chat-container" onclick="changeColor()" class="chat-popup">

<div class="chat-area">

<div class="income-msg">

<img src="c1.jpg" class="meep" alt="Meep:">

<span class="msg">Meep: Hi! :) </span>


</div>

</div>


<div class="input-area">

<input id="name-input" type="name" size="10" style="margin-right:10px;" placeholder="Type your name">

<input id="message-input" type="text" placeholder="Type your message here">

<input type="color" id="colorpicker" class="colors" value="#CDEF88">

<button class="submit"> SEND </button>


</div>

</div>

</section>


<script src="c.js"> </script>


</body>


</html>


RESULT:


CSS CODE:



*{


margin: 0;


padding: 0;


box-sizing: border-box;


}


 


button {


background-color: white;

color: black;

border: 5px solid #CDEF88;

cursor: pointer;


}


 


body {


font-family: Avenir next, Avenir next, Avenir next;


background-color: #EFDB9C;


display: flex;


justify-content: center;


height: 100vh;


width: 100%;


}


 


section {


max-width: 1100px;


margin: auto;


text-align: center;


padding: 0 1.5rem;


}


 


 


.chat-btn {


position: fixed;


right: 300px;


bottom: 100px;


background: #CCCCFFF;


color: black;


width: 100px;


height: 100px;


border-radius: 50%;


opacity: 0.8;


transition: opacity 0.3s;


box-shadow: 0 5px 5px rgba(0,0,0,0.5);


}


 


.chat-btn:hover, .submit:hover, .colors:hover {


opacity: 1;


}


 


.chat-popup {


display: none;


position: fixed;


bottom: 80px;


right: 420px;


height: 400px;


width: 430px;


background-color: #CDEF88;


flex-direction: column;


justify-content: space-between;


padding: 0.75rem;


box-shadow: 5px 5px 5px rgba(0,0,0,0.4);


border-radius: 10px;


}


 


.show {


display: flex;


}


 


.chat-area{


height: 80%;


overflow-y: auto;


overflow-x: hidden;


}


 


.income-msg {


display: flex;


align-items: center;


}


 


.meep {


width: 45px;


height: 45px;


border-radius: 50%;


object-fit: cover;


}


 


.income-msg .msg {


background-color: white;


color: black;


padding: 0.6rem;


border-radius: 8px;


margin-left: 1rem;


box-shadow: 0 2 5px rgba(0,0,0,0.5);


border: 1px solid gray;


}


 


.input-area {


position: relative;


display: flex;


justify-content: center;


}


 


input [type="text"], input [type="name"] {


width: 100%;


border: 3px solid #ccc;


font-size: 1rem;


border-radius: 5%;


height: 2.2rem;


padding: 2px;


}


 


.colors {


margin-left: 0.5rem;


background-color: white;


color: white;


display: flex;


justify-content: center;


align-items: center;


border-radius: 5px;


opacity: 0.7;


}


 


.submit {


padding: 0.25rem 0.5rem;


margin-left: 0.5rem;


background-color: white;


color: black;


display: flex;


justify-content: center;


align-items: center;


border-radius: 5px;


border: 1px solid gray;


opacity: 0.7;


}


 


.out-msg {


display: flex;


justify-content:flex-end;


align-items: center;


}


 


.my-msg {


display: flex;


justify-content: flex-end;


margin: 0.75rem;


padding: 0.6rem;


background-color: white;


border-radius: 8px;


box-shadow: 0 2px, 5px rgba (0,0,0,0.4);


border: 1px solid gray;


word-break: break-all;


}


 


@media (max-width:700px){


.chat-popup{


bottom: 120px;


right: 10%;


width: 80vw;


}


JAVASCRIPT CODE:

const popup = document.querySelector('.chat-popup');


const chatBtn = document.querySelector('.chat-btn');


const submitBtn = document.querySelector('.submit');


const chatArea = document.querySelector('.chat-area');


const inputElm = document.querySelector('input');


const nameInput = document.getElementById('name-input');


const messageInput = document.getElementById('message-input');


 


chatBtn.addEventListener('click', ()=>{


popup.classList.toggle('show');


})


 


function changeColor() {


document.getElementById("chat-container").style.backgroundColor = 


document.getElementById("colorpicker").value;


}


 


submitBtn.addEventListener('click', ()=>{


let name = nameInput.value;


let message = messageInput.value;


let temp =


`<div class="out-msg">


<span class="my-msg">${name}: ${message}</span>


<img src="c.jpg" class="meep">


</div>`;


chatArea.insertAdjacentHTML("beforeEnd", temp);


nameInput.value = '';


messageInput.value = '';


})

Comments

Popular Posts