当前位置: 首页 > news >正文

福建建设厅网站官网苏州高端网站建设公司

福建建设厅网站官网,苏州高端网站建设公司,网站+做内容分发资格,网站建设有哪些分工分html2canvas-api 为了使用html2canvas完成截图的功能#xff0c;我们首先先使用一个按钮来测试一下html2canvas的截图功能。 首先在页面上创建一个img标签 img idtest-image :style{ width: 300px}/创建一个button按钮#xff0c;添加点击…html2canvas-api 为了使用html2canvas完成截图的功能我们首先先使用一个按钮来测试一下html2canvas的截图功能。 首先在页面上创建一个img标签 img idtest-image :style{ width: 300px}/创建一个button按钮添加点击事件publish button clickpublish发布/button const publish () {const el document.getElementById(canvas-area) as HTMLElement;// 引入html2canvas, 调用html2canvas返回一个promise对象 // 第二个参数是 html2canvas的options先添加一下最终截图的宽度html2canvas(el, { width: 375 }).then((canvas) {// 返回一个canvas Element,将该element显示到图片上面const image document.getElementById(test-image) as HTMLImageElement;// toDataURL可以将canvas转换成一系列base64编码的图片资源内容image.src canvas.toDataURL();}); };第一个问题是没有背景图片了 这是因为我们页面上面的元素都是使用的是阿里云的oss所以图片的地址会存在跨域的情况htmlCanvas对于任何跨域的资源都不会做处理所以就不会显示截图出现的背景图片。 解决方法 // 在options里面增加 useCORS来处理跨域请求。 html2canvas(el, { width: 375, useCORS: true })在请求头里面 当然这个配置生效的前提是要在我们阿里云oss中进行跨域请求的一些配置否则还是不会生效的。 对象存储 -- 权限管理 -- 跨域访问 第二个问题是html2canvas获取到的截图在某些机型上面得到的宽度是750px但是我们设置的宽度是375。 主要原因是window.devicePixelRatio的值不同 window.devicePixelRatio https://developer.mozilla.org/zh-CN/docs/Web/API/Window/devicePixelRatio 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比。 简单来说它告诉浏览器应使用多少屏幕实际像素来绘制单个CSS像素。 在一个标准的显示密度下所以在标准屏幕下devicePixelRatio 应该为 1 特例 视网膜Retina显示屏它会使用更多的屏幕像素绘制相同的对象从而获得更清晰的图像。devicePixelRatio 为 2 。 所以虽然我们中间的元素 css 尺寸是 375px但是因为 Apple 是视网膜屏幕所以使用了两倍于 css 尺寸的设备像素来渲染它这就是最后图片尺寸为 750 px 的原因。 html2canvas 的处理 https://html2canvas.hertzen.com/configuration/ 中的 scale 属性 html2canvas(el, { width: 375, useCORS: true, scale: 1 })第三个问题是有的区域出现了灰色黑色的区域 出现这个原因是因为我们在进行渲染中间画布区域的时候会带上一个boxShadow属性 html2canvas是不支持boxShadow渲染的一旦有这个属性就会出现这个问题。解决方法就是我们需要手动动态增加一些类名然后去掉这个属性 const canvasFix ref(false)const publish async () {// remove select element,主要是将蓝色选中状态去掉store.commit(setActive, );const el document.getElementById(canvas-area) as HTMLElement;canvasFix.value true;// 需要等dom更新后进行截图效果才能上去。await nextTick();html2canvas(el, { width: 375, useCORS: true, scale: 1 }).then((canvas) {const image document.getElementById(test-image) as HTMLImageElement;image.src canvas.toDataURL();canvasFix.value false;});};// 通过canvasFix来动态增加类型将box-shadow干掉.preview-list.canvas-fix .edit-wrapper * {box-shadow: none !import;}
http://www.huolong8.cn/news/301256/

相关文章:

  • 免费做网站app下载互联网招聘网站排行
  • 简答网站开发流程有域名如何做免费网站
  • 网站不收录是什么原因二级域名做很多网站
  • 智联招聘网站建设个人网站的制作模板
  • 郑州网站建设廴汉狮网络页面模板怎么设置
  • 购物类网站开发竞价托管推广多少钱
  • 淄博网站优化推广朝阳区十大互联网
  • 中卫网站推广公司制作网站的心得
  • 章贡网站建设建设机械员证书查询网站
  • 网站设计 psd百度指数有什么作用
  • 扫二维码直接进入网站怎么做网页游戏传奇世界
  • python+网站开发+prf四川网站建设
  • 营销网站都有哪些自己动手的网站
  • 网站开发的经验技巧定制包装需要多少钱
  • le网站源码哪些行业做网站的多
  • 管理网站怎么做的官网好看的公司
  • 三亚学做网站培训wordpress网站文件目录
  • 深圳网站搜索引擎优化h5动画用什么软件做
  • 知名的环保行业网站开发常德网站建设开发公司
  • 网站建设大作业选题医院咨询
  • 网站跳转至手机端如何做法语网站建设
  • 2017网站建设报价方案wordpress 文章页名称
  • 手机做兼职的网站网站落地页如何做
  • 自己建设网站需要什么服务好的网站开发
  • 中升乙源建设公司网站手工制作花朵
  • 漳州网站建设到博大赞买个网站域名要多少钱一年
  • 网站制作哪家最好关于申请网站建设经费的报告
  • 自己怎样优化网站广州网站公司推广建设
  • 装饰工程东莞网站建设生产erp管理系统app
  • 医疗室内设计网站推荐淮安高端网站制作