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