js实现canvas光源跟随鼠标交互照射方块盒子影子效果代码
代码语言:html
所属分类:动画
代码描述:js实现canvas光源跟随鼠标交互照射方块盒子影子效果代码
代码标签: canvas 光源 跟随 鼠标 交互 照射 方块 盒子 影子
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> #canvas1 { width: 100%; height: 100%; outline: 2px slateblue solid; margin: auto; cursor: none; } body { background: linear-gradient(129deg, #3f5efb 0%, #fc466b 100%); } /* ~~~~~ IGNORE... Mini CSS-Reset + Placement ~~~~~~ */ *, *::before, *::after { padding: 0; margin: 0 auto; box-sizing: border-box; font-family: inherit; } html, body { width: 100%; height: 100%; } body { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; } </style> </head> <body> <canvas id="canvas1"></canvas> <script > /** @type {HTMLCanvasElement} **/ const canv = document.getElementById("canvas1"); const ctx = canv.getContext("2d"); const BOX_CORNER_ANGLE = (2 * Math.PI) / 4; // == 90°*(π/180) == (2*π)/4 == 90deg in rad const NUM_BOXES = 20; // Nice if it can be 360 % ___ === 0 const SHADOW_COLOR = "#00000030"; // Some opacity for overlay effect const SHADOW_LENGTH = 2000; // Arbitrary Large # const BASE_HUE = Math.floor(Math.random() * 360); const HUE_ROTATION = Math.floor(360 / NUM_BOXES); // const canvasFillColor = window.getComputedStyle(canv).backgroundColor; let boxesArr = []; const light = { x: 0, y: 0 }; // is set to Canvas' center.........完整代码请登录后点击上方下载按钮下载查看
网友评论0