如何使用鼠标光标给网页带来黑暗中的光效果

2023-12-13

我有兴趣制作一个完全黑暗的网页效果(在黑暗中,我的意思是黑暗如夜,根本没有灯光),并给鼠标光标一个灯光效果来照亮周围。
我应该用什么来达到这样的效果?我尝试在 CSS 和网络上寻找答案,但没有找到类似的东西。
我唯一发现的是这个插件适用于 WordPress,但它是固定的,无法自定义或使用。


我知道这是一个旧线程,但我对自己制作效果很感兴趣,并开始了jsfiddle 上的东西我认为可以完成任务。

代码位于 jsfiddle,并复制到此处并附有说明。一切都很简单。

HTML

我用 id 创建了一个 divlight,然后我使用了一个包装 div,称为content,包含 lorem ipsum。

<div id="light"></div>

<div class="content">  
    <h1>Flashlight test</h1>   
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
    <ul>
        <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
        <li>Aliquam tincidunt mauris eu risus.</li>
        <li>Vestibulum auctor dapibus neque.</li>
    </ul>
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
    
</div>

CSS

我设计了html元素,这是页面上的顶级元素,具有黑色文本和黑色背景,因此默认情况下所有内容都会被隐藏。

接下来我用lightID。我将我的高度设置为 100 像素,宽度设置为 100 像素,将背景设置为黄色,并给它一个border-radius50px,宽度/高度的一半,形成一个圆圈。我也做了divposition: relative,因此它脱离了正常的页面流,并且可以放置在其他元素之上,这对于我们创建效果所需的分层非常重要。我决定在用户​​移动鼠标之前为手电筒设置一个默认位置(更多内容请参见 JS 部分),因此我设置了top and left属性设置为 50%,使其在页面上居中。

最后,我向内容包装 div 添加了规则,设置position: relativez-index to 10. position: relative or position: absolute需要得到z-index上班;z-index控制哪些元素堆叠在哪个元素之上。因此将内容div(即文本)设置为更高z-index,使其出现在浅色 div 的顶部,由于背景较浅,您现在可以看到它。

html { 
    color: #000; 
    background-color: #000; 
}

.content {
    position: relative;
    z-index: 10;
}

#light {
    top: 50%;
    left: 50%;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    position: absolute;
    background-color: rgb(231, 221, 122);
}

JavaScript

JS只有6行,使用jQuery。它所做的只是使用以下命令设置元素的偏移量 - 位置 -mousemove()事件函数。该函数有一个参数,用于保存鼠标所在位置的坐标。从该数字中减去 50 个像素以使光线居中,您就得到了效果。

$(document).mousemove(function(event) {
    $('#light').offset({
        top: event.pageY - 50,
        left: event.pageX - 50
    });
});

编辑:现代更新

遵循与上述相同的原则,以下是如何利用我最初编写答案时不可用的功能来利用更现代的普通编码实践。

完整演示在这里:https://codepen.io/bronzehedwick/pen/oNdRwYN

HTML

<div id="light" style="--light-position-y: 0; --light-position-x: 0"></div>
<div class="content">
  <h1>Flashlight test</h1>
  <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
  <ul>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
    <li>Aliquam tincidunt mauris eu risus.</li>
    <li>Vestibulum auctor dapibus neque.</li>
  </ul>
  <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
</div>

CSS

body {
  background-color: black;
}

.content {
  position: relative;
  z-index: 10;
}

#light {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  position: absolute;
  transform: translate(var(--light-position-x, 0px), var(--light-position-y, 0px));
  background-color: rgb(231, 221, 122);
}

JavaScript

var light = document.getElementById('light');

document
  .documentElement
  .addEventListener('mousemove', function handleMouseMove(event) {
    light.style.setProperty('--light-position-y', (event.clientY - 50) + 'px');
    light.style.setProperty('--light-position-x', (event.clientX - 50) + 'px');
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用鼠标光标给网页带来黑暗中的光效果 的相关文章

  • 元素和 svg 形状之间的白线

    大家好 我正在使用由 shapedivider 生成的 svg 整形器 您可以看到 有一条白线 我不知道为什么它在那里以及如何删除它 请你帮助我好吗 有形状分隔符的代码 custom shape divider bottom 1640714
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 如何使用 jQuery 或 JavaScript 聚焦 或 标签?

    for var i 0 i
  • Bootstrap 中的旋转字形 / Font Awesome

    我试图让引导站点中的字形在悬停时旋转 除了更改颜色之外 这是我的尝试 http jsfiddle net young greedo17 88g5P http jsfiddle net young greedo17 88g5P 使用此代码 d
  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • 为不同的字体系列指定不同的字体大小

    有没有办法为不同的字体系列指定不同的字体大小 我想要使 用的字体 出于产品品牌目的 是一种有点罕见的字体 FlashDLig 并非所有 PC 和浏览器都支持 我的一台带有 IE 9 的 Windows 7 PC 不显示它 现在 对于我使用
  • CSS 网格框架中的间距有什么作用?

    我正在深入研究 Web 开发 并且正在使用 Blueprint CSS 框架 其中包括网格系统 我有几个问题 水沟有什么用处 当然 它们不用于在列之间包含空间 因为您可以使用 margin CSS 属性来实现这一点 对吗 或者排水沟只是一种
  • 如何使用 CSS 媒体查询检测设备方向?

    在 JavaScript 中 可以使用以下方式检测方向模式 if window innerHeight gt window innerWidth portrait true else portrait false 但是 有没有一种方法可以仅
  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • 使用纯 CSS 创建向上和向下箭头图标或按钮

    我正在尝试使用纯 CSS 且无背景图像创建如下所示的 向上和向下 控制按钮 但是当我在 中添加箭头的CSS时li className after or li className before 主盒子的位置移动了 这是我遇到的问题的小提琴 g
  • Quill 公开可用的 CSS

    我最初的目的是从 PrimeFaces TextEditor 组件输出的 HTML 生成 PDF 文件 而该组件又基于 免费开源 WYSIWYG 编辑器 Quill 为此 我需要获取 TextEditor 组件生成的 HTML 将其包含在
  • 如何让CSS选择以字符串开头的ID(不是Javascript)?

    如果 HTML 中有这样的元素 id product42 id product43 如何匹配所有以 product 开头的 id 我已经看到了完全使用 javascript 执行此操作的答案 但是如何仅使用 CSS 执行此操作 id pro
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • Bootstrap Affix Nav 导致下面的 Div 向上跳转

    我使用 Bootstrap 的 Affix 函数创建了一个 JSFiddle 以便在向下滚动并且标题移出视图时使导航保持在屏幕顶部 我遇到的问题是 当使用纯 HTML 时 导航下方的文本会过早地跳起来并隐藏在导航后面 查看有问题的代码her
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • 在按钮之间添加空间?

    嗨 我这里有一个代码 除了一件事之外 一切都很完美 代码中每个按钮之间没有空格 我尝试过 margin 但不幸的是它是一个无序列表 所以我有点困惑 我将添加或替换什么以在两个按钮之间留出空间 帮助
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 如何防止弹性项目高度因其内容而溢出[重复]

    这个问题在这里已经有答案了 我刚刚开始学习 Flex 到目前为止我印象深刻 但是 我对包含页眉 页脚和三列的全页应用程序遇到了问题 第一列包含一个项目列表 由于我无法为其父级设置固定高度 因此每次列表增长时 它都会将页脚向下推 这是一个带有

随机推荐

  • 将打印按钮添加到 Inno Setup 中的许可证页面(Inno Setup 6 重新访问)

    这是一个标准 RTF 文档 用于LicenseFile财产在 Setup Inno 设置部分 是否可以在此页面添加一个打印按钮来触发打印许可协议 我看到了类似的问题和答案 在 Inno Setup 的许可页面中添加 打印协议 按钮 我刚刚尝
  • 将 Trace 方法添加到 System.Diagnostics.TraceListener

    我编写了一个从 System Diagnostics TraceListener 派生的 Log 类 如下所示 public class Log TraceListener 它充当 Log4Net 的包装器 并允许人们像这样使用 Syste
  • 如何在 bigquery 中取消嵌套结构数组的字符串?

    bigquery 方法 当 option name 为 labels 时 INFORMATION SCHEMA TABLE OPTIONS 返回 option value 的结构数组字符串 更多信息在这里 表选项例如 我创建表 CREATE
  • 如何告诉 Google 翻译不要翻译网站的某个部分?

    谷歌翻译有一个开发者工具这将在网站上启用谷歌翻译 有没有办法告诉谷歌翻译不要翻译网站的某个部分 也许在 HTML 元素上有一个类名 我已经尝试过HTML5 翻译 否属性 它没有任何作用 这是一个特殊的问题 因为谷歌错误翻译了网站的名称 根据
  • Asp.Net C# MVC 动态表单(更改 Dom 结构并获取服务器上的数据)

    我使用 JavaScript 动态更改客户端的 DOM 以添加一些新的输入字段 不使用Ajax可以在服务器端获取数据吗 只需按下发送按钮即可在我的控制器中获取新数据 答案就在这里 http habrahabr ru blogs aspnet
  • Spring Data Rest 中嵌套资源的分页

    当访问以下 URL 时 我会收到分页响应 api userPosts links self href api userPosts page size sort templated true next href api userPosts p
  • 如何使用 jQuery 在元素的属性上插入变量?

    我只是想问是否可以在属性上插入 jQuery 变量 这是我的示例代码 a href Click here a 我需要输入 href 的 jQuery var 值 我怎样才能做到这一点 先感谢您 Sure function var u
  • 显示所选父级的树形菜单

    我在这里构建一个树形菜单 类别可通过其 id 进行访问 并显示其子类别 我的函数对于两级菜单运行良好 但无法生成第三级菜单 仅当单击第二级项目的 id 时 才应显示第三级菜单 我也需要这个函数来跟踪节点的路径 如果给出第三级 id 那么树应
  • 更改 uitableviewcell 的宽度

    我尝试更改表格视图中单元格的 with 我不做自定义单元格 我只是子类化 uitableviewcell 这是班级 implementation customCell id initWithStyle UITableViewCellStyl
  • 用 Python 计算费德勒向量

    如何在 Python 中找到拉普拉斯算子 L 的场向量 我可以使用以下方法获取特征值和特征向量 特征值 特征向量 linalg eig L 我假设 python 不会按顺序返回特征值 我是否取第二大特征值 然后将其与相应的特征向量匹配 在索
  • C++ system() 引发 ENOMEM

    这个问题是一个M not WE这个的question 我写了一段代码来重现该错误 include
  • 在 Access 中使用 SQL Server 存储过程的输出参数

    在从 Access 2013 VBA 执行该过程后 我尝试从 SQL Server 2008 中的存储过程获取输出变量 新标识列 我并不完全理解 adodb 的所有内容 并且我尝试了不同文章中的许多内容 但均无济于事 这就是我现在所处的位置
  • 如何追踪 log4net 问题

    我一直使用 log4net 但我从未弄清楚的一件事是如何知道内部发生了什么 例如 我的项目中有一个控制台附加程序和一个数据库附加程序 我对数据库和代码做了一些更改 现在数据库附加程序不再工作 我最终会找出原因 但如果我能看到 log4net
  • 使用动态文件名保存到 SharePoint 的 VBA 宏

    我有一个 Excel 工作表 我想通过宏将其保存到 SharePoint 我已经对其进行了排序 但问题是每个月的文件名都会有所不同 我不想每次都更改宏 即 filenameSeptember filenameOctober 等 我使用一个非
  • Linq To Entities 将值与 List 进行比较

    我在用实体框架5 0 并且我在 LINQ 查询方面遇到问题 我有以下方法 它接受一个整数值 然后将其传递到查询中 这很好用 public IList
  • 如何访问 Firefox 扩展的 manifest.json 文件?

    我正在对 Chrome 和 Firefox 扩展进行简短的研究 我可以访问清单 json我的 Chrome 浏览器上安装的 Chrome 扩展程序的文件 网址为chrome extension
  • Pytesseract 太慢了。如何让它更快地处理图像?

    我在下面的代码中使用 pytesseract def fnd for fname in list x None x np array np array PIL Image open fname print x size for im in
  • 检查变量是否为数字:Applescript

    如何检查变量是否为数字 我正在尝试这个 set a to 5 if a is a number display dialog Yes It s a number end if 我也尝试过这段代码 set a to 5 if a is int
  • 将 python 绘图扩展至全屏

    我想将使用 mpld3 绘制的 python 绘图扩展到全屏 我想使用mpld3 原因如下 我希望有大约 4 个图 并且每个图都有缩放选项 所有绘图必须显示在同一窗口中 在这里 我尝试使用ight layout选项来扩展绘图以占据全屏 但它
  • 如何使用鼠标光标给网页带来黑暗中的光效果

    我有兴趣制作一个完全黑暗的网页效果 在黑暗中 我的意思是黑暗如夜 根本没有灯光 并给鼠标光标一个灯光效果来照亮周围 我应该用什么来达到这样的效果 我尝试在 CSS 和网络上寻找答案 但没有找到类似的东西 我唯一发现的是这个插件适用于 Wor