vue 实现一键复制功能(复制图片和文字)

这篇具有很好参考价值的文章主要介绍了vue 实现一键复制功能(复制图片和文字)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 一键复制这个功能也是经常使用到的,实现起来并没有那么复杂,原生就可以实现。

  • 原理就是找到这个Dom元素把这个元素里面的文字和图片直接复制下来。

  • 细节复制方法的时候可能会出现斜杆(不是不生效不用管),图片大小会维持原来的图片大小。

  • 注意在页面scss写的样式复制出来并不会生效,记得写行内样式才能识别到

代码实现

1.页面结构-记得写行内样式才能控制图片大小问题

              <div class="QRbutton">
                <el-button type="primary" size="mini" @click="getqrcopy"
                  >复制二维码</el-button>
              </div>
              <div class="QRdetail" ref="QRdom">
                <div class="QRcopy">
                  <img
                    src="需要复制图片地址-http形式"
                    alt="二维码复制"
                    width="180"
                    height="180"
                    style="border: 1px solid #ccc"
                  />
                  <p style="margin: 0px">测试设备-二维码</p>
                </div>
              </div>

2.页面样式

.QRbutton {
      display: flex;
      align-content: center;
      margin: 0 0 10px 0;
      .el-button {
        margin-right: 20px;
      }
    }
    .QRdetail {
      .QRcopy {
        width: 200px;
        height: 220px;
        // border: 1px solid #ccc;
        padding: 5px;
        display: flex;
        flex-direction: column;
        align-items: center;
        img {
          width: 180px;
          height: 180px;
        }
      }
    }

3.页面方法-通过ref找到dom元素

// 二维码复制
    getqrcopy() {
      this.$nextTick(function () {
        //nextTick,当前dom渲染完毕的回调
        //打印获取的dom
        console.log('QRdom', this.$refs.QRdom) 
        const selection = window.getSelection()
        const range = document.createRange()
        //传入dom
        range.selectNode(this.$refs.QRdom) 
        selection.addRange(range)
        //copy是复制-中间可能会出现一条杠不用管不影响使用
        document.execCommand('copy') 
        // 清除缓存
        selection.removeAllRanges()
        // 提示用户复制成功
      })
    }

总结:

经过这一趟流程下来相信你也对 vue 实现一键复制功能(复制图片和文字)有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕文章来源地址https://www.toymoban.com/news/detail-556147.html

到了这里,关于vue 实现一键复制功能(复制图片和文字)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包