<!-- ----------------- Created By InCoder ----------------- -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Check Internet Connection Status using Javascript - InCoder</title>
<link rel="stylesheet" href="main.css">
<link href='https://unpkg.com/boxicons@2.1.1/css/boxicons.min.css' rel='stylesheet'>
</head>
<body>
<div class="inWrapper">
<div class="inIcon"><i class='bx'></i></div>
<div class="inStatus">
</div>
</div>
</body>
</html>
/* ----------------- Created By InCoder ----------------- */
@import url("https://fonts.googleapis.com/css2?family=Poppins&display=swap");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Poppins", sans-serif;
}
.inWrapper {
top: 1rem;
opacity: 0;
right: -1rem;
width: 20rem;
display: flex;
height: 3.5rem;
position: fixed;
padding: 15px 0px;
border-radius: 5px;
align-items: center;
pointer-events: none;
transition: transform 0.4s linear;
box-shadow: 0 4px 10px #bbbbbb9e;
}
.inWrapper::before {
content: "";
left: 0.4rem;
width: 0.5rem;
height: 3rem;
position: absolute;
border-radius: 5rem;
}
.inIcon {
display: flex;
font-size: 24px;
border-radius: 50%;
margin-left: 1.2rem;
align-items: center;
height: 2.5rem;
width: 2.5rem;
margin-right: 0.5rem;
justify-content: center;
}
/* .inWrapper.inOnline{
background-color: rgb(209, 250, 229);
} */
/* .inWrapper.inOffline{
background-color: rgb(254, 202, 202);
} */
.inWrapper.inOnline::before {
background-color: rgb(16, 185, 129);
}
.inWrapper.inOffline::before {
background-color: rgb(220, 38, 38);
}
.inWrapper.inOnline .inIcon {
color: rgb(5, 150, 105);
}
.inWrapper.inOffline .inIcon {
color: rgb(220, 38, 38);
}
.inStatus h3 {
font-size: 14px;
}
.inStatus p {
font-size: 12px;
}
.inWrapper.slide {
animation: slide 0.5s forwards;
}
@keyframes slide {
100% {
right: 1rem;
opacity: 1;
}
}
.inWrapper.slide-out {
animation: slide-out 0.5s forwards;
}
@keyframes slide-out {
0% {
right: 1rem;
opacity: 1;
}
100% {
right: -1rem;
opacity: 0;
}
}
let wrapper = document.querySelector(".inWrapper");
let icon = document.querySelector(".inIcon i");
let statusText = document.querySelector(".inStatus");
function hideToast() {
wrapper.classList.add("slide-out");
setTimeout(function () {
wrapper.classList.remove("slide-out");
}, 1000);
}
window.addEventListener("online", function () {
wrapper.classList.toggle("slide");
wrapper.classList.toggle("inOnline");
icon.classList.toggle("bx-wifi");
statusText.innerHTML =
"<h3> You're Online Now </h3> <p>Hurray! Internet is Connected</p>";
setTimeout(function () {
wrapper.classList.toggle("slide");
wrapper.classList.toggle("inOnline");
icon.classList.toggle("bx-wifi");
hideToast();
}, 4000);
});
window.addEventListener("offline", function () {
wrapper.classList.toggle("slide");
wrapper.classList.toggle("inOffline");
icon.classList.toggle("bx-wifi-off");
statusText.innerHTML =
"<h3> You're Offline Now </h3> <p>Opps! Internet is Disconnected</p>";
setTimeout(function () {
wrapper.classList.toggle("slide");
wrapper.classList.toggle("inOffline");
icon.classList.toggle("bx-wifi-off");
hideToast();
}, 4000);
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.