Vue 드래그 캡 처 기능 의 간단 한 실현 방법
html 2 canvas,vue-cropper 설치
npm i html2canvas --save //
npm i vue-cropper -S //
2.main.js 에 vue-cropper 구성 요 소 를 등록 합 니 다.
import VueCropper from 'vue-cropper'
Vue.use(VueCropper)
3.페이지 에 html 2 canvas 도입
import html2canvas from "html2canvas"
export default{
}
코드 분해1.지 정 된 영역 을 그림 으로 전환
this.$nextTick(()=>{
html2canvas(document.body,{}).then(canvas => {
let dataURL = canvas.toDataURL("image/png");
this.uploadImg = dataURL
this.loading = true
});
})
body 전체 페이지 를 그림 으로 바 꾸 고 base 64 형식 데 이 터 를 얻 으 며 다른 지역 에 서 는 class 나 id 를 직접 가 져 옵 니 다.2.생 성 된 그림 을 드래그 하여 캡 처
<template>
<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>
</template>
<script>
export default{
data(){
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:{
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>
5.모든 코드
<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>
효과 도총결산
Vue 드래그 캡 처 기능 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.Vue 드래그 캡 처 기능 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 주시 기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.