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

莱芜网站排名价格徐州seo推广优化

莱芜网站排名价格,徐州seo推广优化,众创空间网站建设方案,企业自己怎么制作网站首页在工作中偶尔会遇到要将整个网页或者网页的局部转为图片保存下来,最开始使用html2canvas,发现只能转可视窗口里面的元素,并且会存在css样式乱码、饿了么组件变形等问题,最后发现使用dom-to-image可以实现自己的需求 一、安装dom-…

        在工作中偶尔会遇到要将整个网页或者网页的局部转为图片保存下来,最开始使用html2canvas,发现只能转可视窗口里面的元素,并且会存在css样式乱码、饿了么组件变形等问题,最后发现使用dom-to-image可以实现自己的需求

一、安装dom-to-image

npm install dom-to-image

二、演示页面

先做一个简单的demo页面,做了预览功能和下载功能。

<template><div class="content"><div class="left"><el-button type="primary" @click="preview">预览</el-button><el-button type="primary" @click="download">下载</el-button><el-imagestyle="width: 200px; height: auto;margin-top: 100px":src="imgUrl":zoom-rate="1.2":max-scale="7":min-scale="0.2":preview-src-list="[imgUrl]":initial-index="1"fit="cover"/></div><div class="right" ref="rightRef"><div class="item red"></div><div class="item green"></div><div class="item blue"></div><div class="item gray"></div></div></div>
</template><style scoped lang="scss">
.content {width: 100vw;height: 100vh;display: flex;.left {width: 300px;}.right {flex: 1;overflow: auto;}.item {width: 100%;height: 33%;margin-bottom: 20px;}.red {background-color: rgba(255, 0, 0, .5);}.green {background-color: rgba(0, 255, 28, .5);}.blue {background-color: rgba(55, 2, 255, .5);}.gray {background-color: rgba(179, 179, 179, .5);}
}</style>

三、dom-to-image的使用

import domtoimage from 'dom-to-image';const rightRef = ref() //要进行转化为图片的元素对象
const imgUrl = ref() //用于存储图片地址//预览图片
function preview() {domtoimage.toPng(rightRef.value).then(function (base64Image:any) {imgUrl.value = base64Image  //转化出来后的数据是base64的类型})
}

点击预览后,当前窗口中的元素就已经被转为图片格式了

四、当前页面超出滚动条部分的处理

根据dom-to-image官网:https://github.com/tsayen/dom-to-image?tab=readme-ov-file的提示,可以设置图片的宽高和样式

于是可以在生成图片的时候,将图片的宽高设置为所需元素的宽高

//预览图片
function preview() {// 临时移除高度限制(如果需要)const originalHeight = rightRef.value.style.height;rightRef.value.style.height = 'auto'; //先把高度放开// 定义图片的变量const option = { width: rightRef.value.scrollWidth,  // 确保宽度包含所有内容height: rightRef.value.scrollHeight, // 确保高度包含所有内容style: {overflow: 'visible',      // 确保内容不会被裁剪},}domtoimage.toPng(rightRef.value,option).then(function (base64Image:any) {rightRef.value.style.height = originalHeight; // 再将盒子恢复成原样imgUrl.value = base64Image})
}

这个时候,点击预览出现的图片,就会是完整的元素图片

再添加一个下载功能

function download() {// 下载日报图片const a = document.createElement('a');a.href = imgUrl.value;a.download = '网址转图片.png';document.body.appendChild(a);a.click();document.body.removeChild(a);
}

五、完整demo代码

<script setup lang="ts">
import {ref} from 'vue'
import domtoimage from 'dom-to-image';const rightRef = ref() //需要进行网页转图片的实例
const imgUrl = ref() //用于存放base64//预览图片
function preview() {// 临时移除高度限制(如果需要)const originalHeight = rightRef.value.style.height;rightRef.value.style.height = 'auto'; //先把高度放开// 定义图片的变量const option = {width: rightRef.value.scrollWidth,  // 确保宽度包含所有内容height: rightRef.value.scrollHeight, // 确保高度包含所有内容style: {overflow: 'visible',      // 确保内容不会被裁剪},}domtoimage.toPng(rightRef.value,option).then(function (base64Image:any) {rightRef.value.style.height = originalHeight; // 再将盒子恢复成原样imgUrl.value = base64Image})
}function download() {// 下载日报图片const a = document.createElement('a');a.href = imgUrl.value;a.download = '网址转图片.png';document.body.appendChild(a);a.click();document.body.removeChild(a);
}</script><template><div class="content"><div class="left"><el-button type="primary" @click="preview">预览</el-button><el-button type="primary" @click="download">下载</el-button><el-imagestyle="width: 200px; height: auto;margin-top: 100px":src="imgUrl":zoom-rate="1.2":max-scale="7":min-scale="0.2":preview-src-list="[imgUrl]":initial-index="1"fit="cover"/></div><div class="right" ref="rightRef"><div class="item red"></div><div class="item green"></div><div class="item blue"></div><div class="item gray"></div></div></div>
</template><style scoped lang="scss">
.content {width: 100vw;height: 100vh;display: flex;.left {width: 300px;}.right {flex: 1;overflow: auto;}.item {width: 100%;height: 33%;margin-bottom: 20px;}.red {background-color: rgba(255, 0, 0, .5);}.green {background-color: rgba(0, 255, 28, .5);}.blue {background-color: rgba(55, 2, 255, .5);}.gray {background-color: rgba(179, 179, 179, .5);}
}</style>

http://www.dtcms.com/wzjs/161938.html

相关文章:

  • 怎么通过淘宝优惠券做网站赚钱推广引流的10个渠道
  • 网站开发用什么开发工具好呢新手做电商怎么起步
  • 都匀住房和城乡建设部网站有别人的交易链接怎么交易
  • wordpress用什么服务seo标签优化
  • 做彩票网站能挣到钱吗百色seo外包
  • 用vs做web网站时下拉框互联网
  • 微信公众号网站开发本地调试百度搜索页面
  • html5建一个网站3小时百度收录新站方法
  • 网站建设扌金手指六六seo优化费用
  • 独立网站服务器百度sem竞价推广电子书
  • 澳门捕鱼网站网址百度怎么精准搜关键词
  • 网站建设技术风险seo学徒是做什么
  • 票务网站开发百度seo优化软件
  • 青海建设兵团青岛战友网站软文吧
  • 上海html5网站制作培训班有哪些
  • 深圳网站建设服务平台广告免费推广网
  • 襄阳网站推广优化技巧百度一下网页入口
  • 天津网站制作计划临沂seo公司
  • 黄山旅游攻略自由行路线推荐淘宝seo是什么意思啊
  • 龙岩网站设计 贝壳下拉百度搜索引擎推广收费标准
  • 网站根目录文件开发一款app软件需要多少钱
  • 泉州外贸网站建设都有哪些公司seo推广的常见目的有
  • 创建网站主题在哪里seo关键词怎么选择
  • 招聘网站开发的背景2345浏览器网址
  • 偷拍男女宾馆做爰视频网站谷歌三件套一键安装
  • 做网站用新域名还是老域名seo是干嘛的
  • 老牛wordpress搜索seo怎么优化
  • 网站自动生成网页吸引人的营销标题
  • 石家庄网站定制开发小程序模板
  • 郑州做网站的专业公司有哪些一键优化