基于CSS mask-image 实现炫酷图片过渡效果之星球大战

一些图片的鼠标悬停效果,鼠标悬停后会改变原图,单纯的渐隐渐现,放大缩小,左右平移已经满足不了产品经理期望了,总觉得不够惊艳,创意不够。其实作为一个开发者,也不会满足这普通日常的动画交互效果,在寻找新的 idea 时发现基于 CSS mask-image 可以实现很多不错的效果,本文将基于此属性实现四种图片过渡动画效果。

前置知识点

mask-image CSS 属性用于设置元素上遮罩层的图像。默认值是 none,也就是无遮罩图片。因此,和 border 属性中的 border-style 属性类似,是一个想要有效果就必须设定的属性值。注意由于此属性目前还不是完全支持,部分浏览器还需要增加-webkit-前缀使用。

mask-image遮罩所支持的图片类型非常的广泛,可以是 url()静态图片资源,格式包括 JPG,PNG 以及 SVG 等都是支持的;也可以是动态生成的图片,例如使用各种 CSS3 渐变绘制的图片。语法上支持 CSS3 各类渐变,以及 url()功能符,image()功能符,甚至 element()功能符。同时还支持多背景,因此理论上,使用 mask-image 我们可以遮罩出任意我们想要的图形,非常强大。

语法如下:

/* <mask-source> value */
mask-image: url(masks.svg#mask1);

/* <image> values */
mask-image: linear-gradient(rgba(0, 0, 0, 1.0), transparent);
mask-image: image(url(mask.png), skyblue);

/* Multiple values */
mask-image: image(url(mask.png), skyblue), linear-gradient(rgba(0, 0, 0, 1.0), transparent);

示例演示,一个渐变色背景的纯文本元素增加 mask-image 属性后是什么效果呢。 

.mask {
  -webkit-mask-size: contain;
 -webkit-mask-image: url(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/161ced10bf344eb085c34cefd8958dd1~tplv-k3u1fbpfcp-watermark.image?);
}

两张图片以渐变的方式合并成为一张图片。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值