Vue保存当前页面为图片

// cdn图片有问题  需要换成本地的图片
<template>
  <div class="index">
        <div class="canvas" ref="canvas">
            <div class="avatar">
                <img src="https://upload.jianshu.io/users/upload_avatars/5688440/df757d94-74f0-4862-a648-0258da84da58.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/120/h/120" alt="">
            </div>
            <div class="text">
                <p>手气好,抽到宝,你不来试试吗?</p>
                <p>我刚刚抽到了:</p>
            </div>
            <div class="box">
                <div class="title">小米音乐音响</div>
                <div class="sound">
                    <img src="https://s1.ax2x.com/2018/08/17/59dkmp.png" alt="">
                </div>
                <div class="qrcode">
                    <img src="https://s1.ax2x.com/2018/08/17/59dlh3.png" alt="">
                </div>
                <div class="tip">长按识别 试试运气</div>
            </div>
            <div class="from">
                来自UU跑腿抽奖
            </div>
        </div>
        <div class="save_btn" @click="savecanvas">
             保存图片
        </div>
  </div>
</template>
<script>
import html2canvas from 'html2canvas';
export default {
  data () {
    return {
    };
  },
  mounted(){
  },
  methods: {
    savecanvas(){
        let canvas = document.querySelector('.canvas');
        let that = this;
        html2canvas(canvas,{scale:2,logging:false,useCORS:true}).then(function(canvas) {
                let type = 'png';
                let imgData = canvas.toDataURL(type);
                // 照片格式处理
                let _fixType = function(type) {
                    type = type.toLowerCase().replace(/jpg/i, 'jpeg');
                    let r = type.match(/png|jpeg|bmp|gif/)[0];
                    return 'image/' + r;
                };
                imgData = imgData.replace(_fixType(type),'image/octet-stream');
                let filename = "UUSound" + '.' + type;
                that.saveFile(imgData,filename);
        });
    },
    saveFile(data, filename){
        let save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
        save_link.href = data;
        save_link.download = filename;
    
        let 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>
<style lang='less' scoped>
.index{
    height: 100%;
    width: 100%;
    .canvas{
        height: 100%;
        height: 100%;
        background: #d5574a;
        padding: 0.5067rem 0.6rem 0; 
        box-sizing: border-box;
        .avatar{
            height: 1.0667rem;
            width: 1.0667rem;
            margin: 0  auto;
            img{
                height: 1.0667rem;
                width: 1.0667rem;
                border-radius: 50%;
            }
        }
        .text{
            font-size: 0.4267rem;
            color: #ffffff;
            margin-top: 0.36rem;
            text-align: center;
            p:last-child{
                margin-top: 0.2667rem;
            }
        }
        .box{
            margin-top: 0.5333rem;
            width: 100%;
            background: #ffffff;
            border-radius: 8px;
            padding: 0 0.3067rem 0.9333rem;
            box-sizing: border-box;
            .title{
                font-size: 0.5067rem;
                color: #ff8b03;
                padding: 0.76rem 0 0.5067rem;
                text-align: center;
            }
            .sound{
                width: 100%;
                border:2px solid #ff8b03;
                box-sizing: border-box;
                img{
                    width: 100%;
                }
            }
            .qrcode{
                width: 2.4rem;
                height: 2.4rem;
                margin: 0.88rem  auto 0;
                img{
                    width: 100%;
                }
            }
            .tip{
                font-size: 0.3733rem;
                color: #8f8f8f;
                text-align: center;
                margin: 0.3733rem 0 0 0;
            }
        }
        .from{
            text-align: center;
            font-size: 0.3067rem;
            color: #E6a7a2;
            margin-top: 0.8667rem;
        }

    }
    .save_btn{
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        height: 1.44rem;
        background: #333333;
        line-height: 1.44rem;
        text-align: center;
        color: #ffffff;
        font-size: 0.3733rem;
    }
}
</style>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大牛请绕道!!!开发过程中我们会遇到,保存屏幕界面、整个滚动视图、webView等等,你还可能会遇到失真的麻烦,本...
    __沙漠阅读 4,194评论 2 2
  • 需要的第三方库:1.jquery.js(https://cdn.bootcss.com/jquery/3.3.1/...
    Hi小胡阅读 2,287评论 0 2
  • 一日一景 野风夜来袭,冬日卷土来。 一技劲挺直,独秀见春在。
    吉光片羽_9bc2阅读 213评论 3 10
  • 压力是什么?压力来自哪里?我们有压力吗?仅三个问题却有千万的答案!这就好像,一棵树有数十根树枝,一根树枝有无数张叶...
    燕子Diana阅读 440评论 3 1
  • 最近总是会梦到他。 梦到他开着车掉进河里,她哭着冲向人群,歇斯底里的喊“赵小臭……” 醒来后,很想给他发个微信,但...
    陆小陆22阅读 253评论 0 0

友情链接更多精彩内容