详解html2canvas截图不能截取圆角图片的解决方案


Posted in HTML / CSS onJanuary 30, 2018

以前我们只能通过其他的截图工具来截取图像。现代浏览器的功能已经越来越强,随着H5的逐渐普及,浏览器本身就可以截图啦。html2canvas就是这样一款前端插件,它的原理是将Dom节点在Canvas里边画出来。虽然很方便,但有以下限制:

  • 不支持iframe
  • 不支持跨域图片
  • 不能在浏览器插件中使用
  • 部分浏览器上不支持SVG图片
  • 不支持Flash
  • 不支持古代浏览器和IE,如果你想确认是否支持某个浏览器,可以用它访问 http://deerface.sinaapp.com/ 试试 :)

由于我的使用场景很简单,记录一下异常信息,并且异常页面也是由自己定义的,那么html2canvas 就足够使用了。

第一次用html2canvas,目的就是想把整个页面截图下来生成一张图片给用户保存

下面我们先来看看HTML渲染出来的是啥样子的

详解html2canvas截图不能截取圆角图片的解决方案

HTML渲染出来的图片可以看到上面的图片是有圆角效果的,但是当我用html2canvas来进行转换图片操作的时候,发现图片圆角效果没失效了。

详解html2canvas截图不能截取圆角图片的解决方案

变成了上面这个样子。想了很多解决方案,后来决定把后面的圆角做成一张背景图片,中间圆的部分背景透明,然后通过绝对定位覆盖到原来的图片上面,相当于是一个遮罩这种效果。

当然,遮罩图片的DOM节点必须在需要圆角图片的下面,类似于

<div class="avatar_img fl"><div class="avatar_img fl"> 
     <img src="" id="you" class="avatar_pp fl" /><!--需要圆角的原始图片-->
     <img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩图片-->
</div>

生成出来就是正常的样子了

<div class="avatar_img fl"><div class="avatar_img fl"> 
     <img src="" id="you" class="avatar_pp fl" /><!--需要圆角的原始图片-->
     <img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩图片-->
</div>

复制代码
代码如下:

<a href="<a href="http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg"><img">http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg"><img</a> src="<a href="http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg">http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg</a>" alt="" width="169" height="300" srcset="<a href="http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg">http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg</a> 169w, <a href="http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg">http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg</a> 377w" sizes="(max-width: 169px) 100vw, 169px" /></a>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
Aug 19 HTML / CSS
IE浏览器单独写CSS样式的几种方法
Oct 14 HTML / CSS
css3实现圆锥渐变conic-gradient效果
Feb 12 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
Nov 16 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
Nov 30 HTML / CSS
HTML5-WebSocket实现聊天室示例
Dec 15 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
Dec 30 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
从零实现一个自定义html5播放器的示例代码
Aug 01 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
HTML中link标签属性的具体用法
May 07 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
Jan 29 #HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 #HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
Jan 29 #HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
Jan 29 #HTML / CSS
详解HTML5 data-* 自定义属性
Jan 24 #HTML / CSS
详解html5 shiv.js和respond.min.js
Jan 24 #HTML / CSS
浅析HTML5:'data-'属性的作用
Jan 23 #HTML / CSS
You might like
PHP strtr() 函数使用说明
2008/11/21 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
详解php中的implements 使用
2017/06/13 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
pygame实现简易飞机大战
2018/09/11 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
解析python实现Lasso回归
2019/09/11 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
详解Python中的Lock和Rlock
2021/01/26 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
小学老师寄语大全
2014/04/04 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
护理见习报告范文
2014/11/03 职场文书
先进学校事迹材料
2014/12/30 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang