首页 > 其他分享 >图片的拖动

图片的拖动

时间:2022-12-08 16:58:30浏览次数:34  
标签:const 拖动 offsetX transform offsetY let document 图片

 

 <div       @mousedown="imgMove"       id="imgRef"       ref="imgRef"       class="full-height full-width img-style"       style="position: relative"     >       <el-image         fit="contain"         :src="src"         class="full-height full-width img-style"         :style="imgStyle"       />     </div> methods1: import { on, off } from 'element-ui/src/utils/dom' import { rafThrottle } from 'element-ui/src/utils/util'   imgMove(e) {       const { offsetX, offsetY } = this.transform       const startX = e.pageX       const startY = e.pageY       this._dragHandler = rafThrottle((ev) => {         e.preventDefault()         this.transform.offsetX = offsetX + ev.pageX - startX         this.transform.offsetY = offsetY + ev.pageY - startY       })       on(document, 'mousemove', this._dragHandler)       on(document, 'mouseup', () => {         off(document, 'mousemove', this._dragHandler)       })       e.preventDefault()     }, computed: {     imgStyle() {       const { scale, deg, offsetX, offsetY } = this.transform       const style = {         transform: `scale(${scale}) rotate(${deg}deg)`,         'margin-left': `${offsetX}px`,         'margin-top': `${offsetY}px`       }       return style     }   },   methods2: imgMove(event) {       event.preventDefault()       let div = this.$refs.imgRef       let originX = event.screenX       let originY = event.screenY       let translateX = this.transform.offsetX       let translateY = this.transform.offsetY       const move = (e) => {         let afterX = e.screenX         let afterY = e.screenY         this.transform.offsetX = translateX + (afterX - originX)         this.transform.offsetY = translateY + (afterY - originY)       }       div.addEventListener('mousemove', move)       div.addEventListener('mouseup', () => {         div.removeEventListener('mousemove', move)       })     }, methods3:  imgMove(el) {       el.preventDefault()       let oDiv = this.$refs.imgRef       oDiv.onmousedown = function (e) {         const disX = e.clientX - oDiv.offsetLeft         const disY = e.clientY - oDiv.offsetTop         document.onmousemove = function (e) {           const l = e.clientX - disX           const t = e.clientY - disY           oDiv.style.left = l + 'px'           oDiv.style.top = t + 'px'         }         document.onmouseup = function () {           document.onmousemove = null           document.onmouseup = null         }         return false       }     },

标签:const,拖动,offsetX,transform,offsetY,let,document,图片
From: https://www.cnblogs.com/loveyork/p/16966536.html

相关文章

  • canvas导出图片方法总结
    1.直接调用canvas对象的toDataURL方法转化为指定类型varnewImg=newImage();newImg.src=canvas.toDataURL("image/png"));2.利用canvas对象的toBlob方法https://de......
  • 阿里云OSS图片上传压缩
    pom文件增加图片压缩依赖包<!--图片压缩--><dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><vers......
  • app直播源码,js实现上传图片类型+大小+尺寸验证
    app直播源码,js实现上传图片类型+大小+尺寸验证html代码: <inputtype="file"name="files"id="file"onchange="verificationPicFile(this)">​js代码: //图片类型......
  • 直播商城系统源码,点击按钮 保存页面为图片到本地
    直播商城系统源码,点击按钮保存页面为图片到本地首先写一个按钮创建事件 <buttonclass="info"@click="capture()">点击保存我哦~</button> ​然后把点击事件写上......
  • 【快应用】任意拖动图标实现案例
    ​ 问题背景:快应用页面开发阶段,ui布局时总是会遇到要在页面上实现一个可以任意拖动的导航栏,且在拖动时不能超出屏幕和导航栏不能在到边界时被压缩。一些开发者就会被困......
  • vue3 Cropperimage插件写入默认网络图片跨域解决办法----- 图片转换成base64
    最近项目中有一个裁切图片的需求,百度了一番最后选用cropperImage插件。由于项目中图片是存放在阿里云上,cropperImage插件在初始化默认图的时候会存在跨域问题,百度经验我选......
  • feign-reactive 框架下实现图片上传
    springwebFlux微服务实现图片上传,经过两天的摸索,我的实现方案是:首先,把文件一传到消费者,生成FilePart对象,把FilePart对象通过Feignreactive传给服务者最后,在服务端......
  • 如何查看旧贴已经“失效”的图片
    贴吧吞帖也太难受了吧!第一步,打开一个加精的旧贴然后,按下F12,进入开发者模式,选择网络,或者像下图先点击箭头,再选中网络刷新一下页面,等待加载完毕,选择图片进一步筛选......
  • 03-添加图片
    添加图片指定添加图片的位置加载所有图片//初始化图片privatevoidinitImage(){intnumber=1;//外循环---把内循环重复执行了4次......
  • Android加载图片的几种方式
    一,获得res/raw目录下的原始图片文件InputStreamis=getResources().openRawResource(R.id.fileNameID);Bitmapbmp=BitmapFactory.decodeStream(is);虽然raw目录下......