The specific usage of the Vue image drag and drop zoom component is for your reference. The specific content is as follows <doc> Image component - user zooms in and out and drags</doc> <template> <div style="width: 100%;position: relative;overflow: hidden;text-align: center;border: 1px solid #f1f2f3;"> <el-button size='mini' @click="toBIgChange" icon="el-icon-zoom-in" style="position: absolute;top: 2px ;left: 2px;z-index: 999;"></el-button> <el-button size='mini' @click="toSmallChange" icon="el-icon-zoom-out" style="position: absolute;top: 2px ;left: 40px;z-index: 999;"></el-button> <img id="img" :src="src" alt="" @mousedown.prevent="dropImage" :style="{transform:'scale('+multiples+')'}"> </div> </template> <script> export default { props: ['src'], data() { return { multiples: 1, odiv: null, } }, mounted() { this.dropImage() }, watch: src(newValue, oldValue) { this.multiples = 1 if (this.odiv !== null) { this.odiv.style.left = '0px'; this.odiv.style.top = '0px'; } }, }, methods: { toBIgChange() { if (this.multiples >= 2) { return; } this.multiples += 0.25; }, //Shrink toSmallChange() { if (this.multiples <= 1) { return; } this.multiples -= 0.25; }, // drag dropImage(e) { if (e === null) { return } this.odiv = e.target; //Get the target element //Calculate the position of the mouse relative to the element let disX = e.clientX - this.odiv.offsetLeft; let disY = e.clientY - this.odiv.offsetTop; document.onmousemove = (e) => { //Mouse pressed and moved event //Subtract the position of the mouse relative to the element from the position of the mouse to get the position of the element let left = e.clientX - disX; let top = e.clientY - disY; //Bind the element position to positionX and positionY this.positionX = top; this.positionY = left; //Move the current element this.odiv.style.left = left + 'px'; this.odiv.style.top = top + 'px'; }; document.onmouseup = (e) => { document.onmousemove = null; document.onmouseup = null; }; }, } } </script> <style scoped> img { width: 100%; position: relative; } </style> The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: How to set the default value of a MySQL field
>>: Detailed explanation of the deployment process of SEATA transaction service Docker
XML/HTML CodeCopy content to clipboard < input...
Introduction: AD is the abbreviation of Active Di...
Table of contents Application scenarios: Method 1...
Last night, I was looking at an interview question...
How to determine whether a variable is empty in s...
Table of contents Preface 1. Tomcat class loader ...
Library Management Create a library create databa...
This article shares the specific code for JavaScr...
No way, no way, it turns out that there are peopl...
The Spring Boot project uses docker containers, j...
Recently, I encountered a database with the follo...
1. Foreign key setting method 1. In MySQL, in ord...
Table of contents 1. Introduction 2. Entry mode o...
1. What is it? MySQL is the most popular relation...
Use native JS to write a nine-square grid to achi...