mask-image的应用

栏目: 后端 · 前端 · 发布时间: 4年前

内容简介:遮罩层,如果学过Flash的同学应该都听过,跟PS的剪切蒙版差不多。大概的效果就是被遮罩层与遮罩层不透明的部分重叠的部分是可见的,而遮罩层是不显示的。类似于现实世界中一张A4卡纸剪了个洞,我们可以通过洞看卡纸后面的物体,这里卡纸相当于遮罩层,只不过洞是遮罩层不透明的部分,其他部分是遮罩层透明的部分,与我们想象中的正好相反。CSS中也有遮罩这个属性 ——以前做过活动券的需求,右下角是水印,不同的券颜色不一样。

遮罩层,如果学过Flash的同学应该都听过,跟PS的剪切蒙版差不多。大概的效果就是被遮罩层与遮罩层不透明的部分重叠的部分是可见的,而遮罩层是不显示的。类似于现实世界中一张A4卡纸剪了个洞,我们可以通过洞看卡纸后面的物体,这里卡纸相当于遮罩层,只不过洞是遮罩层不透明的部分,其他部分是遮罩层透明的部分,与我们想象中的正好相反。

CSS中也有遮罩这个属性 —— mask-image ,但是这么多年了,很多浏览器还不支持,Chrome还需要加前缀。利用 mask-image 能做出一些不错的效果,比如 https://codepen.io/inegoita/p...

以前做过活动券的需求,右下角是水印,不同的券颜色不一样。

mask-image的应用

如果直接用图片的话可能就需要不同图片,而用 mask-image ,只需要一张图片,变换颜色用CSS控制就可以了。 http://demo.vczhan.com/css/ma...

前几天,一个朋友接到一个需求,用一个心形容器里面的水波来体现亲密度,水波是动画效果并且限制在容器里。

mask-image的应用

想到用 mask-image 这个属性正合适,于是要来了心型图片,拿到设计师导出的SVG文件,用 SVGO 压缩下得到一个 SVG 。另外水波是显示在内层容器里的,原来是想直接缩小心形SVG,发现还是有些差别的,还好可以从这个SVG里直接提取出内层的心形 SVG

接下来是做水波,用SVG也很容易做

<svg viewBox="0 0 120 125">
  <defs>
    <path id="wave" d="M 0 0 C 30 0, 30 15, 60 15, 90 15, 90 0, 120 0, 150 0, 150 15, 180 15, 210 15, 210 0, 240 0 v 125 h -240 z"/>
  </defs>
  <use class="wave" xlink:href="#wave" x="0" y="1" />
  <use class="wave" xlink:href="#wave" x="0" y="0" />
</svg>

水波比较简单,先定义一条波纹路径,用二次贝塞尔曲线画出重复的两段横向波纹,方便后面做动画,然后引用这个路径做两条波纹出来。

最后在心形容器的元素上加上遮罩,把水波放在这个容器里,加上动画就好了。

其他细节看 demo 代码。

参考: https://developer.mozilla.org...


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

无线:网络文化中激进的经验主义

无线:网络文化中激进的经验主义

[英] 阿德里安·麦肯齐 / 张帆 / 上海译文出版社 / 2018-9

本书研究了无线是如何成为当代人类经验的主角的。从路由器、智能电话、电子书、城市到在线工作、服务协议、玩具以及国家等各个方面,人们已经感觉到了无线技术所引发的变革。本书作者援引一个世纪之前的哲学技术来分析当代最前沿的后网络时代的人类状况。基于威廉•詹姆斯的实用主义哲学相关的彻底经验主义,作者提出了把失序的无线网络世界与人们的感知匹配起来的新方式。一起来看看 《无线:网络文化中激进的经验主义》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器