人生处处是舞台,人需要聚光灯,代码也需要聚光灯,这里就分享一个如何做聚光灯的效果,欢迎大家将代码拿去尝试;

1、效果展示

2、代码分享

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>手电筒聚光效果</title>
</head>
<style></style><body><h1>hello world</h1>
</body>
<script>document.querySelector('style').append(`canvas {position: fixed;left:0;top: 0;z-index: 9999;pointer-events: none;}`)document.body.appendChild(document.createElement('canvas'))const cvs = document.querySelector('canvas')const ctx = cvs.getContext('2d')cvs.width = document.documentElement.clientWidthcvs.height = document.documentElement.clientHeightconst p = {x: 0,y: 0,r: 50}document.onmousemove = e => {p.x = e.clientXp.y = e.clientYrender()}const render = () => {ctx.beginPath()ctx.clearRect(0, 0, cvs.width, cvs.height)var radial = ctx.createRadialGradient(p.x, p.y, p.r, p.x, p.y, p.r * 3);radial.addColorStop(0, 'rgba(255, 255, 255, 0)');radial.addColorStop(1, 'rgba(0, 0, 0, 0.5)');ctx.fillStyle = radial;ctx.fillRect(0, 0, cvs.width, cvs.height);}render()window.onresize = () => {cvs.width = document.documentElement.clientWidthcvs.height = document.documentElement.clientHeightrender()}
</script></html>

用html+js实现聚光灯效果【建议收藏】相关推荐

  1. js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...

    前言 最近和女友,咳咳...(说出来可能会被打s)学习JS数组方法,用几个字形容的话就是听说过,实际使用.遇到的时候就分不清具体方法会得到怎样的结果. 今天我将通过这篇文章好好整理一下关于JS数组的方 ...

  2. 「数组方法」写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)

    前言 最近和女友,咳咳-(说出来可能会被打s)学习JS数组方法,用几个字形容的话就是听说过,实际使用.遇到的时候就分不清具体方法会得到怎样的结果. 今天我将通过这篇文章好好整理一下关于JS数组的方法, ...

  3. canvas实现聚光灯效果(js)

    效果展示: 源码展示: <!doctype html> <html> <head><meta charset="utf-8">< ...

  4. JavaScript常用工具类大全(50套原生js方法)建议收藏

    原生JavaScript实现字符串长度截取 function cutstr(str, len) {var temp;var icount = 0;var patrn = /[^\x00-\xff]/; ...

  5. 你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)

    1.CSS盒模型,在不同浏览器的差异 css 标准盒子模型 css盒子模型 又称为框模型(Box Model),包含了元素内容(content).内边距(padding).边框(border).外边距 ...

  6. 如何运行vue项目 ?(详解,建议收藏) ❤️

    如何运行vue项目 (详解,建议收藏) 转载 首先,列出来我们需要的东西: node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 安装node.js 从no ...

  7. ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️

    <SpringMVC框架介绍>(建议收藏) ❤️希望博友给个三连+关注!!! SSM: mybatis + Spring + SpringMVC MVC三层架构 SpringMVC + V ...

  8. 学习javascript这一篇就够了超详细笔记(建议收藏)上

    学习javascript这一篇就够了超详细笔记(建议收藏)上 1.初识 计算机基础导读 编程语言 计算机基础 初识js 浏览器执行 js组成 js初体验-三种书写位置 js注释 js输入输出语句 2. ...

  9. html类选择器使用在什么场景,你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)...

    1.CSS盒模型,在不同浏览器的差异 css 标准盒子模型 css盒子模型 又称为框模型(Box Model),包含了元素内容(content).内边距(padding).边框(border).外边距 ...

最新文章

  1. JSP错误页面的处理和exception对象
  2. JS基础-Array对象手册
  3. 如何将APACHE许可证应用于您的工作
  4. python所有算法_Python实现的各种常见分布算法示例
  5. Linux命令之 mount -- 文件系统挂载
  6. python中列表字典和字符串的相互转化
  7. link st 量产工具_ST-Link资料03_ST-Link固件升级、驱动下载安装方法
  8. 根据Uri获取文件的绝对路径
  9. MC新手入门(十三)------ 添加游戏角色
  10. 简单解决 WIN10更新后 远程桌面提示 CredSSP加密Oracle修正的问题
  11. 【K最近邻法(KNN)】的Python和R语言简单实现鸢尾花分类
  12. 【APICloud系列|31】成功上架5个应用商店总结(腾讯应用宝、阿里应用分发平台、华为开发者联盟、小米开放平台、百度开放平台)
  13. centos 安装scp
  14. Altium Designer怎样秒敷铜?
  15. ad网络标号怎么用_【Altium Designer】AD改变网络标号的作用域
  16. 计算机网络第一章学习通题目及答案
  17. 唐伯虎啊.......哎~~
  18. 全网最全面的python的讲解,讲的无可挑剔《记得收藏》
  19. gabor滤波器 opencv 实现
  20. 在家控制公司的电脑 这两个软件你下载了吗

热门文章

  1. 《生命》第二集:Reptiles and Amphibians (爬行和两栖动物)
  2. 什么是Bom?有哪些常用的Bom属性
  3. Spring和Spring Boot的区别
  4. 分享下.NET程序读取二代身份证(附源码
  5. linux命令 截取文件后缀名,Shell截取文件名和后缀(转载)
  6. 软件设计师备考笔记(五)计算机网络
  7. PHP关于redis面试题
  8. QVector基本用法
  9. JAVA 注解 processor_注解处理器(Annotation Processor)简析
  10. 本博客迁移至http://www.cnblogs.com/cobbliu/