web前端中的遮罩蒙版

在前端开发中,有一些效果需要实现遮罩蒙版的效果,有几种方案,记录一下

CSS实现

css 中mask属性,最早是出现在Safari浏览器上的,可以追溯到09年

目前得到了大部分浏览器支持。在移动端需要加-webkit-使用

image.png

mask属性主要有

mask-border
mask-border-mode
mask-border-outset
mask-border-repeat
mask-border-slice
mask-border-source
mask-border-width
mask-clip
mask-composite
mask-image
mask-mode
mask-origin
mask-position
mask-repeat
mask-size
mask-type

mask 属性 上面属性的简称

一般用法,我们使用mask-image属性来配合使用

<div class="box">
</div>
<style>
  .box {
      background: #000;
      width: 200px;
      height: 100px;
      -webkit-mask-image: linear-gradient(to right, rgba(0,0,0, 0) 0, rgba(0,0,0,1))
  }
</style>

效果


叠加蒙版上的效果

注意这个属性要是设置全黑的话,可以实现剪切效果 与css 属性 clip 和clip-path 形成的结果相似

clip 和 clip-path 具体用法 见mdn

SVG 的MASK标签

svg中的mask标签锚点可以直接在css中引用起到添加蒙版的效果

eg:

<svg>
  <defs>
    <mask id="mask">
      <rect x="0" y="0" width="100" height="200" fill="#000" />
    </mask>
  </defs>
</svg>
<style>
  .box {
    mask-image: url(#mask);
     mask: url(#mask) // 对外链接的支持
    }
</style>

canvas 实现

此处没有实现,不过作者有一些自己的想法,其实canvas中可以获取到rgba值,只要实现ps中蒙版的叠加算法,可以实现这个效果

未完待续,等实现了这个算法,我补上这个地方

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 遮罩: 有色则显示,无色抠取,半透明则半透明 蒙版: 黑色则抠除,白色显示,灰色则半透明 概念上两者非常容易混淆,...
    永恒君_9b95阅读 7,047评论 1 2
  • 实现分类功能 1 设计分类数据模型 创建category schema及model 2 分类后台录入及分类存储 修...
    LiuliuZhang阅读 338评论 0 1
  • 方法一来自简书的书友 1、安装 安装完成之后,npm也被自动安装完成。 2、测试 第二方法来自于官网 CentOS...
    初家大老爷阅读 766评论 0 49

友情链接更多精彩内容