目录

  • 前言
  • 注意
  • 代码
  • 小问题

前言

h5项目总是会有很多截图变成图片保存海报的功能,这次遇到了一个需求是保存长图(图片长度根据用户选择项目数量变化)

注意

需要被保存的页面如果是长图,需要有属性overflow:scroll;且每个元素都需要定宽高!!!否则会窜

代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>截长图</title><script src="./jquery-1.11.0.min.js"></script><!--随便一个jq版本--><script src="./html2canvas.0.5-B4.js"></script><!--截长图用的html2canvas版本--><style>/* 这个是保存成的那个图片的样式! */.save_img{position: absolute;width: 100%;height: 100%;opacity: 0;z-index: 8;/*根据具体情况改数值*/}</style></head><body><div><img src="" alt="" id="image"/>/*生成的图片的位置*//*这里面是展示用的海报页内容 */</div><div id="page1" style="z-index: -1;">/*id是为了生成图片,z-index = -1;是为了让这个截图用的页面展示出来方便截图又看不到*//*这里面是截图用的海报页内容*/</div></body><script>/* 注意:截图功能需要用自带环境的编辑器打开才可以!直接打开会报错(跨域问题)page1是需要被截成图片的页面的id,image是截完图 保存图片地址的图片的id*/window.onload = function(){setTimeout(function(){cut_image("page1", "image");},2000)//加一个延时,保证图片被截到function cut_image(id, id2) {<!--如果是不超过一屏的图片截图,下面这一堆可以只写成 var w = $("#" + id + "").width();var h = $("#" + id + "").height();再下面的html2canvas里面也可以不写scrollY、scrollX、y这三个属性-->var scrollHeight = $('#page1').prop("scrollHeight");$('#page1').scrollTop(scrollHeight);$("#image,#page1").css('height',scrollHeight);var height = $('#page1').height();var w = $("#" + id + "").width();var h = scrollHeight;html2canvas(document.getElementById(id), {width: w / 1,height: h / 1,scale: 1,useCORS:true,//(图片跨域相关)allowTaint:false,//允许跨域scrollY: 0, scrollX: 0,y:height-scrollHeight}).then(function(canvas) {var url = canvas.toDataURL("image/jpg", 0.8);//img//image/jpg为格式,0.01是图片质量,可为0~1之间的数,如果超出取值范围,将会使用默认值 0.92//图片地址赋值$('#' + id2 + '').attr('src', url);});}}</script>
</html>

小问题

如果遇到保存长图后二维码识别不了,点这个

h5截长图(html2canvas保存图片)相关推荐

  1. html2canvas 截长图并导出图片

    截长图的问题 过程 为了截长图,可把我气死了,不是上面白,就是下面一片空白,有的时候只截图了当前窗口的,有的时候甚至给你提醒 Error loading image 岂可休!!! 在历尽一晚上查找之后 ...

  2. ffmpeg截取jpg图_知道你会截图,但你会截长图吗

    知道你会截图,但你会截长图吗?有时候我们工作生活中需要截取保存的一些内容比较长,需要截取长图,但是我们常用的截图方式一般都只能截取当前屏幕内的内容,无法截取下面没有显示的地方.怎么办呢? 在浏览器里, ...

  3. android WebView截长图实现

    1.先简单介绍下webview截屏,看代码: //开启缓存 webview.setDrawingCacheEnabled(true); webview.buildDrawingCache();Bitm ...

  4. android 拖动截图,【UNIAPP截长图】方案之一:滚动截屏 Android

    实现思想:主动滚动一段距离,截一个图,然后裁剪拼接 关键步骤: 1.截长图准备 2.截取图片组 3.拼接长图片 1.截长图准备 preparePicture() 获取屏幕可用宽高,页面宽高,及页面底部 ...

  5. 【基础知识】截长图的方法以及防止截图时下拉框自动收回的方法

    截长图的方法: 博主之前使用的tim,不具备截长图的功能,之后百度了很多的方法,最后发现QQ的截长图功能最好用,很不解,tim不应该是偏向于办公吗,这种功能竟然还能阉割? 使用工具:QQ最新版 使用方 ...

  6. UIScrollView截长图

    iOS UIScrollView截长图优化 保留页面上的阴影等细节显示. extension UIScrollView {/**scrollview截长图可以保留阴影图片拼接*/func snapSh ...

  7. android 截长图 方法,Android实现截屏与截长图功能

    本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...

  8. 华为手机截屏怎么截长图_华为手机竟然有6种截屏方法,你用过几种?3种以上的手机没白买...

    很多时候我们都喜欢通过手机截图来对一些信息进行保存分享,那么常用华为手机,关于华为手机截图方法你知道几种呢? 悄悄告诉你,其实华为手机截图方法多达6中,各种花样截图方法都有,就是可惜了很多小伙伴都不知 ...

  9. 华为手机截屏怎么截长图_华为手机5种常用截屏方式,教你轻松定格屏幕精彩瞬间...

    手机上的精彩内容这么多,想要截图发好友,你知道怎么截才最顺手嘛? 华为手机提供了多种实用又快捷的截屏方法,总有一种适合你,快来看看吧~ 隔空截屏 抓取截屏,酷炫手势 在屏幕正前方20~40厘米,伸开手 ...

  10. win10系统picpick截图工具自动滚动截长图方法

    描述:win10系统picpick截图工具自动滚动截长图方法 步骤: 使用截图工具,使用顶部菜单栏,选择截取滚动窗口功能 此时会自动识别滚动窗口,单机滚动条,即可自动滚动,如果只滑动一次就结束了,请将 ...

最新文章

  1. 动态多尺度图表达3D人体骨架运动,实现精准预测效果超SOTA
  2. JavaScript语言精粹_JSON
  3. 使用卷积神经网络进行文本分类textCNN
  4. excel 两组数据交点_初识Python 数据可视化
  5. 怎样在python代码中输入π_鼠标自动点击、键盘自动输入?几行Python代码搞定
  6. django 获取外键对应数据的方式
  7. mysql与mimic安装_MIMIC专题 | MIMIC数据库的安装
  8. 数据建模中的大坑判断
  9. 502 Proxy Error The proxy server received an invalid response from an upstream server
  10. 使用Google Guava Cache进行本地缓存
  11. mysql 条件分析_数据分析之mysql
  12. LayaAir-图集动画
  13. javascript-字符串操作
  14. Geodesic Distance(测地距离)
  15. 485通讯测试软件,485串口测试 RS485口测试方法
  16. beyond-长城-国语谐音歌词
  17. 乐乐音乐-KSC歌词图片生成器
  18. 5.11 按照文字的笔划进行数据的排序 [原创Excel教程]
  19. 【蜂口 | AI人工智能】表情识别——龙鹏 深度学习与人脸图像应用连载(七)...
  20. Android中字母大小写切换的快捷键

热门文章

  1. veu中点击商品详情打开新窗口
  2. html暴风粒子代码,魔兽世界课物品代码及gm指令大全(全部整理自网上).doc
  3. excel中实现多条件去重计数
  4. nodejs对PDF合并的几种方法
  5. 产品沉思录精选:如何像管理金融投资组合一样来管理知识?
  6. 数独大师级技巧_数独入门:你必须掌握的那些规则和技巧
  7. 计算机符号大全名字大全,符号大全_特殊符号网名大全
  8. Java应届生为什么找工作那么难
  9. linux中wine文件夹在哪,linux下wine的使用
  10. Ubuntu16.04下网易云音乐点击图标打不开——已解决