自定义置灰滤镜(JS+CSS)

文章介绍了如何使用CSS样式和JavaScript封装一个功能,可以根据指定的时间范围动态给HTML元素添加灰度滤镜效果。开发者可以通过引入`gray.js`并在index.html中调用相关函数实现灰度化和取消灰度化功能。
摘要由CSDN通过智能技术生成

1. 利用 css 样式

html { 
    filter: grayscale(100%); 
    -webkit-filter: grayscale(100%); 
    -moz-filter: grayscale(100%); 
    -ms-filter: grayscale(100%); 
    -o-filter: grayscale(100%);
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    -webkit-filter: grayscale(1); 
}

2. 利用 JS 代码封装成为可以自定义时间去置灰和取消置灰

(function (window) {
  function GlobalGray(start, end) {
    this.today = new Date();
    this.start = new Date(start);
    this.end = new Date(end);
  }
  GlobalGray.prototype.isInRange = function () {
    return this.today >= this.start && this.today <= this.end
  }
  GlobalGray.prototype.appendStyle = function () {
    var css = "html {";
    css += "-webkit-filter: grayscale(100%);";
    css += "-moz-filter: grayscale(100%);";
    css += "-o-filter: grayscale(100%);";
    css += "filter: grayscale(100%);";
    css += "filter: gray;";
    css += "-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)';";
    css += "}";
    var styleElement = document.createElement('style');
    styleElement.type = 'text/css';
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = css; // 兼容 IE
    } else {
      styleElement.appendChild(document.createTextNode(css)); // 标准写法
    }
    document.head.appendChild(styleElement);
  }
  GlobalGray.prototype.setGray = function () {
    if (this.isInRange()) {
      this.appendStyle();
    }
  };
  window.GlobalGray = GlobalGray;
})(window);

在 index.html 使用

<script src="/libs/gray.js"></script> 
<script> var g = new GlobalGray("2023/11/2 00:00:00", "2023/11/3 00:00:00"); g.setGray(); </script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值