gsap+jquery实现鼠标点击模拟压力网格动画效果代码
代码语言:html
所属分类:动画
代码描述:gsap+jquery实现鼠标点击模拟压力网格动画效果代码
代码标签: gsap jquery 鼠标 点击 模拟 压力 网格 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
cursor: none;
background-color: #000;
}
.cursor, .ripple {
position: fixed;
width: 14px;
aspect-ratio: 1;
background: white;
border-radius: 50%;
pointer-events: none;
z-index: 9999;
transform: translate(-50%, -50%);
}
main {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
main #grid {
width: 200px;
height: 200px;
background: radial-gradient(circle at top left, #c124a4, transparent 100%), radial-gradient(circle at top right, #8c00ff, transparent 100%), radial-gradient(circle at bottom left, #670ba9, transparent 100%), radial-gradient(circle at bottom right, #541ed1, transparent 100%);
border-radius: 30px;
overflow: hidden;
position: relative;
padding: 10px;
display: grid;
place-items: center;
}
main #grid .cell {
aspect-ratio: 1;
width: 5px;
background: white;
opacity: 0.2;
border-radius: 9999px;
}
main #grid .center {
background: transparent;
border: 2px solid white;
width: 7px;
}
main #grid .selected {
opacity: 0.8 !important;
background: white;
box-shadow: 0 0 5px 1px white;
width: 10px;
transition: width 0.2s ease-in-out;
}
</style>
</head>
<body translate="no">
<main>
<div id="grid"></div>
</main>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gsap.3.10.4.js"></script>
<script >
"use strict";
// Constants
const GRID_SIZE = 11;
const CELL_EFFECT_RADIUS = 4;
const MAX_SCALE = 4;
// State
let isMouseDown = false;
// Cursor module
const Cursor = {
setup() {
$("<div>").addClass("cursor").appendTo("body");
$(document).on("mousemove", this.updatePosition);
$(document).on("mousedown", this.createRippleEffect);
$(document).on("mouseup", () => this.scale(1));
$(document).on("dragstart", (e) => e.preventDefault());
},
updatePosition(e) {
$(".cursor, .ripple").css({
left: `${e.clientX}px`,
top: `${e.clientY}px`
});
},
createRippleEffect(e) {
Cursor.scale(1.5);
const $ripple = $("<div>").addClass("ripple").appendTo(".........完整代码请登录后点击上方下载按钮下载查看
网友评论0