详解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 background-image颜色渐变的实现代码
Sep 13 HTML / CSS
使用CSS3的appearance属性改变任何元素的浏览器默认风格
Dec 24 HTML / CSS
css3闪亮进度条效果实现思路及代码
Apr 17 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
HTML5 Canvas概述
Aug 26 HTML / CSS
html5的websockets全双工通信详解学习示例
Feb 26 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
May 07 HTML / CSS
使用phonegap创建联系人的实现方法
Mar 30 HTML / CSS
h5使用canvas画布实现手势解锁
Jan 04 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
php下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
PHP7 windows支持
2021/03/09 PHP
javascript动态加载实现方法一
2012/08/22 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
迎新晚会主持词
2014/03/24 职场文书
《白鹅》教学反思
2014/04/13 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
房产公证书样本
2015/01/23 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
Python中的datetime包与time包包和模块详情
2022/02/28 Python