以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

h5短视频系统源码,h5短视频源码

需求来源

项目开发过程中,你可能会遇到用户需要保存当前页面的内容,但是用户又不想自己通过手机系统手动截图;又或者,你想分享当前页面的内容,把它当做一个海报分享,那这个时候就需要通过程序员来帮你完成前期操作,这个时候就用到了H5快照功能,具体情况如下。

html源码

<div class="mainBox">
  <div class="contentBox" id="need">
    <img src="images/1.jpg" />
    <div class="mainText1">
      菩提本无树,明镜亦非台。<br>
      佛性常清净,何处有尘埃!<br>
      身是菩提树,心如明镜台。<br>
      明镜本清净,何处染尘埃!<br>
      菩提本无树,明镜亦非台。<br>
      本来无一物,何处惹尘埃!<br>
      菩提只向心觅,何劳向外求玄?<br>
      听说依此修行,西方只在目前!
    </div>
    <div class="mainText2">Bodhi has no trees, and a mirror is not a platform.There's nothing in the world, where to get dust!</div>
  </div>
  <div class="btn">下载</div>
  <img src="" class="uploadImg" /></div>

js源码

截图功能需要依赖于canvas2image.jshtml2canvas.js

首先在页面中引入这两个js,当然,如果你需要用到jq,同时还要引入jquery依赖

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script><script type="text/javascript" src="js/canvas2image.js"></script><script type="text/javascript" src="js/html2canvas.js"></script><script type="text/javascript">
  $(".btn").click(function(){
    var need = $("#need").get(0);
    html2canvas(need, {
       useCORS: true,          //允许跨域
       allowTaint: false,       //允许跨域数据污染'被污染'的canvas
       taintTest: true,
       scale: 1                      //比例,越大分辨率越高,图片越小
     }).then(function(canvas) {
        // canvas宽度
        var canvasWidth = $("#need").width();
        // canvas高度
        var canvasHeight = $("#need").height();
            // 调用Canvas2Image插件
            let w = $("#need").width(); //图片宽度
            let h = $("#need").height();
            // 将canvas转为图片
            var img = Canvas2Image.convertToImage(canvas, canvasWidth, canvasHeight);
            // var img = Canvas2Image.convertToJPEG(canvas, canvasWidth, canvasHeight)
            $(".uploadImg").attr("src",img.src);// 渲染图片,并且加到页面中查看效果
            // 保存
            saveFile(img.src, 'richer.png');
    });
  })// 保存文件函数
  var saveFile = function(data, filename){
      var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
      save_link.href = data;
      save_link.download = filename;
      var event = document.createEvent('MouseEvents');
      event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
      save_link.dispatchEvent(event);
  };</script>

截取图片不能显示问题

在项目测试过程中,可能有的同学会遇到截取图片,截取成功后文字能显示,但是图片显示不出来的问题。这个问题我在上面的js中也有所标注,主要是跨域问题。

在你设置useCORS: true, 为图,允许跨域的前提下,你的项目还要运行在环境中才能完全显示图片。环境中运行很重要,你可以在本地部署服务,或者放到一个线上的服务器中运行,这样测试,就是ok了,当然,后续你的项目放在正式环境中,那肯定也是ok的。

搬你想搬,盖你所需,码字不易,且行且珍惜!