Skip to main content

Exercise 12: Chat Box (Finals Interactive)

 


(CODE FOR HTML:)

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

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

<title> Chat Box </title>

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

</head>


<body>


<section>


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

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

<div class="chat-area">

<div class="income-msg">

<span class="msg"> Rj: Hi! I Hope you doing well. Keep safe. See you soon </span>

</div>

</div>

<div class="input-area">

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

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

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

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

</div>

</div>

</section>


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


</body>

</html>

(CODE FOR CSS:)

*{

margin: 0;

padding: 0;

box-sizing: border-box;

}


button {

border: none;

outline: none;

cursor: pointer;

}


body {

font-family: Arial, Consolas, Calibri (body);

background-color: #f28383;

display: flex;

justify-content: center;

height: 100vh;

width: 100%;

}


section {

max-width: 1100px;

margin: auto;

text-align: center;

padding: 0 1.5rem;

}


h1 {

font-size: 3rem;

margin-bottom: 2rem;

}


.chat-btn {

position: fixed;

right: 50px;

bottom: 50px;

background: white;

color: black;

width: 60px;

height: 60px;

border-radius: 50%;

opacity: 0.8;

transition: opacity 0.3s;

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

}


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

opacity: 1;

}


.chat-popup {

display: none;

position: fixed;

bottom: 80px;

right: 120px;

height: 400px;

width: 425px;

background-color: #cbc6dc;

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;

}


.rj {

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.4);

border: 1px solid black;

}


.input-area {

position: relative;

display: flex;

justify-content: center;

}


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

width: 100%;

border: 1px 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 black;

word-break: break-all;

}


@media (max-width:500px){

.chat-popup{

bottom: 120px;

right: 20%;

width: 80vw;

}

}


(CODE FOR JS:)

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>

</div>`;

chatArea.insertAdjacentHTML("beforeEnd", temp);

nameInput.value = '';

messageInput.value = '';

})

Comments

Popular posts from this blog

Exercise 10: Animation (Finals Web Prog)

(Code for HTML:) <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Exercise 010 Animated Web page</title> <link rel="stylesheet" href="Exercise10AnimatedWebpage.css"> </head> <body> <div> <h1 style="font-size:40px;"> ABOUT MYSELF  </h1> </div> <br> <br> <br> <br> <br> <br> <br> <br>  <p style="text-align: justify; text-indent: 50px;">  Hi I'm Jillian Marren Dela Cruz. You can call me "Jill or Jillian" i'm currently 3rd year Multimedia Arts Student. 20 years of Age. I chose multimeida because i want to enchance my skills and i'm willing to learn about everything. I'm November Babies and My zodiac sign is Sagittarius. The Sagittarius Traits is Curious and energetic, Sagittarius is one of the biggest travelers among all...