当前位置:首页 > JavaScript

JS实现哀悼

2026-02-28 20:18:20JavaScript

实现网页哀悼效果的方法

在网页上实现哀悼效果通常指将页面整体调整为黑白或灰色调,以示哀悼。以下是几种常见的实现方式:

CSS滤镜实现 通过CSS的filter属性可以快速将整个页面转为灰度。将以下代码添加到网站的全局CSS或<head>标签中:

html {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}

JavaScript动态切换 通过JavaScript可以动态添加或移除哀悼效果:

JS实现哀悼

function setMourningMode(enable) {
    if (enable) {
        document.documentElement.classList.add('mourning-mode');
    } else {
        document.documentElement.classList.remove('mourning-mode');
    }
}

// 调用示例
setMourningMode(true); // 开启哀悼模式

配合CSS:

.mourning-mode {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
}

兼容性处理 对于不支持CSS滤镜的旧浏览器,可以使用备用方案:

JS实现哀悼

/* 备用方案:通过覆盖半透明黑色层 */
.mourning-mode::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 9999;
    pointer-events: none;
}

特定元素处理 如果只需要对特定元素应用哀悼效果:

.mourning-element {
    filter: grayscale(100%);
    opacity: 0.8;
}

性能优化 全页面滤镜可能影响性能,特别是对大型网站。可以考虑:

  • 只对主要内容区域应用滤镜
  • 使用will-change: filter优化
  • 避免在动画元素上使用

注意事项

  • 测试不同浏览器的兼容性
  • 考虑用户偏好,提供关闭选项
  • 确保文字内容仍保持可读性
  • 避免影响网站功能和交互

标签: JS
分享给朋友:

相关文章

JS奇数实现

JS奇数实现

判断数字是否为奇数 在JavaScript中,可以通过取模运算符(%)来判断一个数字是否为奇数。奇数除以2的余数为1。 function isOdd(num) { return nu…

JS实现netty

JS实现netty

在JavaScript中实现类似Netty的功能 Netty是一个高性能的Java网络框架,专注于异步事件驱动的网络编程。要在JavaScript中实现类似功能,可以使用Node.js的核心模块或第三…

JS实现勋章

JS实现勋章

实现动态勋章效果 使用CSS和JavaScript创建动态旋转勋章。HTML部分定义勋章容器,CSS设置样式和动画,JavaScript控制交互行为。 <div class="badg…

JS实现inpubox

JS实现inpubox

实现 InputBox 的基本结构 使用 HTML 和 CSS 创建一个基础的输入框结构,确保样式简洁且易于扩展。 <div class="input-box"> <input…

JS实现并发请求

JS实现并发请求

使用Promise.all实现并发请求 Promise.all可以同时发起多个异步请求,并在所有请求完成后统一处理结果。该方法适用于需要同时获取多个独立数据的场景。 const urls = ['u…

JS原子锁实现

JS原子锁实现

实现原子锁的方法 使用JavaScript的Atomics对象和SharedArrayBuffer可以实现原子锁。Atomics提供了一组静态方法用于对SharedArrayBuffer进行原子操作,…