详解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 相关文章推荐
CSS中一些@规则的用法小结
Mar 09 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
css3中transition属性详解
Sep 02 HTML / CSS
简单介绍CSS3中Media Query的使用
Jul 07 HTML / CSS
详解css3中的伪类before和after常见用法
Nov 17 HTML / CSS
HTML5表格_动力节点Java学院整理
Jul 11 HTML / CSS
如何使用html5与css3完成google涂鸦动画
Dec 16 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
Jan 09 HTML / CSS
会走动的图形html5时钟示例
Apr 27 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
Nov 10 HTML / CSS
如何利用 CSS Overview 面板重构优化你的网站
Oct 24 HTML / CSS
CSS3实现指纹特效代码
Mar 17 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 include加载文件两种方式效率比较
2010/08/08 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php中关于换行的实例写法
2019/09/26 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
python感知机实现代码
2019/01/18 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
python Zmail模块简介与使用示例
2020/12/19 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
调查研究项目计划书
2014/04/29 职场文书
服务标兵事迹材料
2014/05/04 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
单位委托函范文
2015/01/29 职场文书
奖励申请报告范文
2015/05/15 职场文书
南京大屠杀观后感
2015/06/02 职场文书
运动会广播稿200字
2015/08/19 职场文书
2015团员个人年度总结
2015/11/24 职场文书
React如何创建组件
2021/06/27 Javascript