vue开发小应用:拖动截图功能 - Web前端
作者:98wpeu发布时间:2026-09-05分类:网页前端技术浏览:3
导读:vue开发小应用:拖动截图功能。关于这个功能,我们用到的插件:html2canvas和vue-cropper,大家可以安装下。安装命令如下:npm i html2Canvas --...

vue开发小应用:拖动截图功能。关于这个功能,我们用到的插件:html2canvas和vue-cropper,大家可以安装下。安装命令如下:
npm i html2Canvas --save //用于将指定区域转为图片 npm i vue-cropper -S //将图片进行裁剪
然后在mAIn.JS里注册,并且引用:
import VUECropper from 'Vue-cropper'
Vue.use(VueCropper)
import HTML2canvas from "html2canvas"
Export default{
}由于是个小应用,这里就不做太多解释,直接上DemO。
<template>
<div>
<div @click="tailoring">裁剪</div>
<!--继续写页面的其他内容 pop_alert可封装成组件使用-->
<div class="pop_alert" v-if="show">
<vueCropper
@mouseenter.Native="enter"
@mouseleave.native="leave"
ref="cropper"
:img="uploadImg"
:outputSize="option.size"
:outputtype="option.outputType"
:info="true"
:full="option.full"
:canMove="option.canMove"
:canMoveBox="option.canMoveBox"
:original="option.original"
:autoCrop="option.autoCrop"
:fixed="option.fixed"
:fixedNumber="option.fixedNumber"
:centerBox="option.centerBox"
:infoTrue="option.infoTrue"
:fixedBox="option.fixedBox"
style="background-image:none"
></vueCropper>
<div class="BTn_box">
<div @click="save">确认截图</div>
<div @click="close">取消</div>
</div>
</div>
</div>
</template>
<script>
import html2canvas from "html2canvas"
export default{
data(){
return{
option: {
info: true, // 裁剪框的大小信息
outputSize: 0.8, // 裁剪生成图片的质量
outputType: "jpeg", // 裁剪生成图片的格式
canscale: false, // 图片是否允许滚轮缩放
autoCrop: false, // 是否默认生成截图框
fixedBox: false, // 固定截图框大小 不允许改变
fixed: false, // 是否开启截图框宽高固定比例
fixedNumber: [7, 5], // 截图框的宽高比例
full: true, // 是否输出原图比例的截图
canMove: false, //时候可以移动原图
canMoveBox: true, // 截图框能否拖动
original: false, // 上传图片按照原始比例渲染
centerBox: false, // 截图框是否被限制在图片里面
infoTrue: true // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
},
uploadImg:"",
show: false
}
},
methods:{
tailoring(){ //裁剪
this.$nextTick(()=>{
html2canvas(document.body,{}).then(canvas => {
let DataURL = canvas.toDataURL("image/png");
this.uploadImg = dataurl
this.show = true
});
})
},
enter() {
if (this.uploadImg == "") {
return;
}
this.$refs.cropper.startCrop(); //开始裁剪
},
leave() {
this.$refs.cropper.stoPCrop();//停止裁剪
},
save() { //确认截图
this.$refs.cropper.getCropData((data) => { //获取截图的base64格式数据
console.log(data)
this.show = false
})
// this.$refs.cropper.getCropBlob(data => { //获取截图的Blob格式数据
// this.cutImg = data;
// });
},
close(){ //取消
this.show = false
}
}
}
</script>
<style>
.pop_alert{
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
border: 1px dashed red;
background-color: #000000;
}
.btn_box{
position: absolute;
top: 0;
color: red;
right: 0;
font-size: 30px;
display: flex;
align-items: center;
z-index: 6666;
}
</style>大家可以去测试下。如有问题加群讨论哟。
相关推荐
- Web前端推荐:提取图片中的文字工具 - Web前端
- vue每日一学:温故forEach()在实战项目的基础知识和应用 - Web前端
- React开发:分享几种事件绑定this指向的方法 - Web前端
- HTML5:CSS3画一个可爱动漫宠物 - Web前端
- 对于后台返回json数据处理:总结一些常用的方法 - Web前端
- Vue3开发:简单实例说明路由VueRouter4的应用 - Web前端
- 前端开发:使用React和Tailwind CSS构建网站 - Web前端
- 分享一个用clip-path工具实现的小应用:对图形进行剪切处理 - Web前端
- 原生JavaScript开发TIPS:继承的三种方法 - Web前端
- 使用vue或者react项目,启动时如何修复这样的报错:Error: Cannot find module 'E:\..........' - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


