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