Hover Effects with addClass() & removeClass()
by jay prakash
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery Hover Effects</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<nav>
<a href="#" class="effect" data-class="fadeintop">Fade In Top</a>
<a href="#" class="effect" data-class="skewfromleft">Skew From Left</a>
<a href="#" class="effect" data-class="scalefrombottom">Scale From Bottom</a>
<a href="#" class="effect" data-class="rotatefromright">Rotate From Right</a>
</nav>
<div id="dynamicDiv">Hover Effects Here</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="script.js"></script>
</body>
</html>
CSS
/* styles.css */
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
nav {
text-align: center;
margin: 20px 0;
}
nav a {
margin: 0 15px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
transition: background-color 0.3s;
}
nav a:hover {
background-color: #0056b3;
}
#dynamicDiv {
width: 300px;
height: 200px;
margin: 0 auto;
background-color: white;
border: 2px solid #007BFF;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
transition: all 0.5s;
}
.fadeintop {
animation: fadeInTop 1.5s forwards;
}
@keyframes fadeInTop {
from {
opacity: 0;
transform: translateY(-50px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.skewfromleft {
animation: skewFromLeft 1.5s forwards;
}
@keyframes skewFromLeft {
from {
transform: skewX(-30deg);
opacity: 0;
}
to {
transform: skewX(0);
opacity: 1;
}
}
.scalefrombottom {
animation: scaleFromBottom 1.5s forwards;
}
@keyframes scaleFromBottom {
from {
transform: scaleY(0);
opacity: 0;
}
to {
transform: scaleY(1);
opacity: 1;
}
}
.rotatefromright {
animation: rotateFromRight 1.5s forwards;
}
@keyframes rotateFromRight {
from {
transform: rotate(90deg);
opacity: 0;
}
to {
transform: rotate(0);
opacity: 1;
}
}
JavaScript
// script.js
$(document).ready(function() {
$('.effect').hover(
function() {
var classToAdd = $(this).data('class');
$('#dynamicDiv').removeClass().addClass(classToAdd);
},
function() {
$('#dynamicDiv').removeClass();
}
);
});