当前位置:首页 > JavaScript

JS实现哀悼

2026-01-15 13:54:46JavaScript

实现网页哀悼效果的方法

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

JS实现哀悼

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滤镜实现更广泛的兼容性:

JS实现哀悼

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类名控制的方式,避免直接操作样式:

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实现冰墩墩

以下是用JavaScript绘制冰墩墩的几种实现方法,结合Canvas绘图和SVG路径数据: 使用Canvas绘制基础轮廓 const canvas = document.createElement…

JS节流和防抖的实现

JS节流和防抖的实现

节流(Throttle)的实现 节流是指在一定时间间隔内,函数最多执行一次。常用于限制高频事件的触发频率,如滚动事件、窗口调整等。 function throttle(func, delay) {…

实现 slice JS

实现 slice JS

实现 JavaScript 的 slice 方法 JavaScript 的 slice 方法用于从数组或字符串中提取一部分,返回一个新的数组或字符串,而不修改原始数据。以下是实现 slice 的核心逻…

JS奇数实现

JS奇数实现

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

JS实现勋章

JS实现勋章

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

JS实现GPS

JS实现GPS

GPS定位的基本原理 GPS定位主要通过浏览器提供的Geolocation API实现。该API允许网页获取用户设备的地理位置信息,前提是用户授权同意。位置信息通常来源于设备的GPS模块、Wi-Fi或…