欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 都2024年了你还没有开始探索 CSS 属性 mask 吗?

都2024年了你还没有开始探索 CSS 属性 mask 吗?

2025/2/24 22:13:44 来源:https://blog.csdn.net/fans_x/article/details/140636964  浏览:    关键词:都2024年了你还没有开始探索 CSS 属性 mask 吗?

文章目录

    • 前言
    • 介绍
    • 实践

继上一次原来逆水寒官网这样用CSS进行适配的,我又看到了天谕手游群星计划页面有一个非常有意思的点—轮播图中的每一张图片都是不规则的,这样的实现方式引起了我强烈的好奇心,接下来我们一起看看是怎么实现的。

在这里插入图片描述

前言

打开控制台其实我们可以看到这里是在img这里主要使用了mask这个属性:
在这里插入图片描述
在我们去掉这个mask属性以后,会发现轮播图会有一个白色的背景,这更加让我确定了这个mask属性就是实现这个样式的关键点。所以,接下来让我们来探究一下这个mask到底是何方神圣,居然能完成这样的样式。
在这里插入图片描述

介绍

我们先来看看MDN对 mask 的介绍:mask 允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域。

这个解释肯定让小伙伴们糊里糊涂的,简单来说就是遮罩图片中不透明的部分会和原图片合在一起。拿上面天谕群星计划轮播图的例子来说,我们可以发现,img元素的src属性使用的图片是jpg,而mask-image使用的图片是png(jpg 不支持透明,png 支持透明),所以遮罩图片中不透明的部分和原图片进行合并,得到一个不规则的图片。

mask 属性具有以下几个子属性(和background的属性差不多):

  • mask-image:指定要用作遮罩的图像。
  • mask-mode:定义多个图像遮罩层的混合模式。
  • mask-repeat:控制遮罩图像的重复方式。
  • mask-position:定义遮罩图像的位置。
  • mask-clip:遮罩的裁剪方式。
  • mask-origin:遮罩的定位原点。
  • mask-size:遮罩图像的尺寸。
  • mask-composite:多个图像遮罩层之间的混合方式。

下面是该属性的兼容性图览
在这里插入图片描述

实践

光说不练肯定是不行的,接下来我们就来使用mask实现一个转场动画。先看看实现后的效果:
请添加图片描述
代码片段:

 <div class="container"><div class="img1"></div><div class="img2"></div></div><style>.container {height: 200px;width: 400px;margin: 200px auto;position: relative;}.img1 {position: absolute;height: 200px;width: 400px;background: url("./1.jpg") no-repeat left top;background-size: contain;}.img2::before {content: "";display: block;height: 200px;width: 400px;background: url("./2.jpg") no-repeat left top;background-size: contain;}.img2 {position: absolute;height: 200px;width: 400px;mask-image: url("./mask.png");mask-size: 3000% 100%;animation: maskMove 2s steps(29) forwards;}@keyframes maskMove {from {mask-position: 0 0;}to {mask-position: 100% 0;}}</style>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词