当前位置:首页 > JavaScript

JS实现哀悼

2026-01-15 13:54:46JavaScript

实现网页哀悼效果的方法

通过CSS滤镜和全局样式调整,可以快速实现网页整体变灰的哀悼效果。以下是具体实现方式:

document.addEventListener('DOMContentLoaded', function() {
    const style = document.createElement('style');
    style.innerHTML = `
        html {
            filter: grayscale(100%);
            -webkit-filter: grayscale(100%);
            -moz-filter: grayscale(100%);
            -ms-filter: grayscale(100%);
            -o-filter: grayscale(100%);
        }
    `;
    document.head.appendChild(style);
});

兼容性处理方案

对于需要支持IE浏览器的场景,可以使用SVG滤镜实现更广泛的兼容性:

const grayscaleStyle = document.createElement('style');
grayscaleStyle.innerHTML = `
    html {
        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");
    }
`;
document.head.appendChild(grayscaleStyle);

动态控制哀悼模式

添加控制开关,允许动态启用或禁用哀悼效果:

function setMourningMode(enable) {
    const html = document.documentElement;
    if (enable) {
        html.style.filter = 'grayscale(100%)';
        html.style.webkitFilter = 'grayscale(100%)';
    } else {
        html.style.filter = '';
        html.style.webkitFilter = '';
    }
}

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

性能优化方案

对于大型网站,推荐使用CSS类名控制的方式,避免直接操作样式:

JS实现哀悼

function toggleMourningMode() {
    document.documentElement.classList.toggle('mourning-mode');
}

// 对应CSS
.mourning-mode {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
}

注意事项

  1. 部分现代浏览器可能要求滤镜属性应用于html或body元素才能生效
  2. 使用SVG滤镜时需注意XML特殊字符的转义处理
  3. 某些第三方组件可能不受全局滤镜影响,需要单独处理
  4. 移动端页面建议添加-webkit前缀确保兼容性

标签: JS
分享给朋友:

相关文章

JS如何实现左右滑动

JS如何实现左右滑动

实现左右滑动的方法 使用 touchstart、touchmove 和 touchend 事件监听触摸操作,计算滑动距离和方向。 let startX, moveX; element.addEve…

JS实现一个并发函数

JS实现一个并发函数

实现并发控制的几种方法 在JavaScript中实现并发控制可以通过多种方式,以下是几种常见的方法: Promise.all 使用Promise.all可以并行执行多个异步任务,等待所有任务完成后再…

JS奇数实现

JS奇数实现

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

JS实现netty

JS实现netty

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

JS实现inpubox

JS实现inpubox

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

JS实现取色

JS实现取色

使用 input[type="color"] 获取颜色值 HTML5 提供了原生颜色选择器,通过 <input type="color"> 可直接调用系统取色工具。用户选择的颜色会以十六进…