<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
<a><div class="main">
</div></a>
body {
background: url(https://www.pbs.org/wnet/nature/files/2019/07/Super-Hummingbirds-2-1280x675.jpg) black;
background-size: cover;
background-repeat: no-repeat;
display: flex;
align-items: center;
justify-content: center;
}
.main {
width: 50vw;
display:inline-block;
height: 50vh;
background: rgba(255,255,255,.3);
backdrop-filter: blur(10px);
}
View Compiled
/* JUST FOR MAGNET EFFECT
https://codepen.io/Sirop/pen/jZaQdV?editors=0010
*/
var hoverMouse = function($el) {
$el.each(function() {
var $self = $(this);
var hover = false;
var offsetHoverMax = $self.attr("offset-hover-max") || 0.7;
var offsetHoverMin = $self.attr("offset-hover-min") || 0.5;
var attachEventsListener = function() {
$(window).on("mousemove", function(e) {
//
var hoverArea = hover ? offsetHoverMax : offsetHoverMin;
// cursor
var cursor = {
x: e.clientX,
y: e.clientY - $(window).scrollTop()
};
// size
var width = $self.outerWidth();
var height = $self.outerHeight();
// position
var offset = $self.offset();
var elPos = {
x: offset.left + width / 2,
y: offset.top + height / 2
};
// comparaison
var x = cursor.x - elPos.x;
var y = cursor.y - elPos.y;
// dist
var dist = Math.sqrt(x * x + y * y);
// mutex hover
var mutHover = false;
// anim
if (dist < width * hoverArea) {
mutHover = true;
if (!hover) {
hover = true;
}
onHover(x, y);
}
// reset
if (!mutHover && hover) {
onLeave();
hover = false;
}
});
};
var onHover = function(x, y) {
TweenMax.to($self, 0.4, {
x: x * 0.8,
y: y * 0.8,
//scale: .9,
rotation: x * 0.05,
ease: Power2.easeOut
});
};
var onLeave = function() {
TweenMax.to($self, 0.7, {
x: 0,
y: 0,
scale: 1,
rotation: 0,
ease: Elastic.easeOut.config(1.2, 0.4)
});
};
attachEventsListener();
});
};
hoverMouse($('.main'));
This Pen doesn't use any external CSS resources.