资讯专栏INFORMATION COLUMN

透明背景情况下遮罩出不规则图片

rozbo / 3048人阅读

摘要:使用透明蒙版等在四个角画三角形来遮罩出六边形我们来一一试验使用透明蒙版如果纯色背景还可以,但是背景要求透明的,所以第一种看样子不大可能了。

我们在处理图片,比如用户头像的时候,通常上传的都是矩形图片
例如:

有时候根据设计师的需求,会要求是圆形或者带圆角,这时候我们通常使用css border-radius来达到这一效果:

css.avatar {
    width: 50px;
    height: 50px;
    overflow: hidden;
    border-radius: 50%;
}
.avatar > img {
    width: 100%;
    height: 100%;
}

但是这次遇到的一个需求是,图片要不规则显示出来,设计稿中是这样的

好我们来想可能办法,总体思路是遮罩,难点是遮罩出的图片是不规则,要有白色边框,背景透明。

使用png透明蒙版

css shape、clip等

在四个角画三角形来遮罩出六边形

canvas

svg

我们来一一试验:

使用png透明蒙版

如果纯色背景还可以,但是背景要求透明的,所以第一种看样子不大可能了。

css shape、clip等
css-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);

这样确实可以画出来六边形,背景也可以是透明,如果仔细研究还有可能画出白色的边框但是

这样画出来是完全的标准六边形,而设计稿是带设计师傲娇的圆角的,显然不符合精准还原。
http://jsfiddle.net/chromefans/30oepvhz/3/embedded/

在四个角画三角形来遮罩出六边形

这样也确实可以画出六边形,但是实现出来效果和css shape一样,标准六边形,只是兼容性要好一些。

canvas

我这里没做canvas的demo,就不演示了,如果实在没有完美的方式,就回来用canvas。

svg

好的,终于码到这里了……
在经过一系列研究探讨之后,发现了这篇文章
http://www.html5rocks.com/en/tutorials/masking/adobe/
文中很巧妙的实现了在不规则情况下显示图片,还可以透明背景,在查阅mdn后,还原了设计稿。

还原一下步骤,这个方式需要设计师配合导出一个处理好透明区域的svg,在使用-webkit-mask-box-image方法把svg当做蒙版,这时输出的图片已经是六边形的了
那白色边框怎么办?
既然头像大小是固定的,渲染出来六边形也是固定的,那就。

切一个盖在上面吧。

demo:
http://jsfiddle.net/chromefans/p3t6pdqe/1/embedded/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/111008.html

相关文章

  • 图片放大镜注释详解

    摘要:今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局就是两组,第一组大放图片,小的是遮盖层。 今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局:就是两组div,第一组大div放图片,小的是遮盖层。第二组是大图div显示框,里面放大张图片,超过部分隐藏,...

    yck 评论0 收藏0
  • 图片放大镜注释详解

    摘要:今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局就是两组,第一组大放图片,小的是遮盖层。 今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局:就是两组div,第一组大div放图片,小的是遮盖层。第二组是大图div显示框,里面放大张图片,超过部分隐藏,...

    waltr 评论0 收藏0
  • 图片放大镜注释详解

    摘要:今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局就是两组,第一组大放图片,小的是遮盖层。 今天的练习是做一个网购网站常见的图片详情介绍的放大镜效果,简单来说就是图片中有对应的区域让你看到放大后的效果。关于布局:就是两组div,第一组大div放图片,小的是遮盖层。第二组是大图div显示框,里面放大张图片,超过部分隐藏,...

    starsfun 评论0 收藏0
  • 部分全透明遮罩

    摘要:腾讯微云,在新用户刚进入网站时的提示。第一眼看到这样的部分全透明遮罩的效果,感觉实现的方式有使用图片,在相应的位置进行挖空全透明处理。 腾讯微云,在新用户刚进入网站时的提示。第一眼看到这样的部分全透明遮罩的效果,感觉实现的方式有: 1.使用图片,在相应的位置进行挖空全透明处理。但是这样如果有多处提示,就得使用多张图片 2.或者像腾讯微云自己的实现方式,垒积木似的一块一块拼接,这样做缺...

    young.li 评论0 收藏0
  • 创建华丽 UI 的 7条规则  第二部分 (2019年更新)

    这是这个系列的第二篇,第一篇这见 这里: 以下是这个系列的简洁 UI 的 7 条规则: 光来自天空 (Light comes from the sky) 黑白优先 (Black and white first) 加倍你的空白 (Double your whitespace) 学习在图像上叠加文本的方法 ( Learn the methods of overlaying text on image...

    李文鹏 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<