js实现图片滚轮、按钮缩放大小,图片旋转,图片拖拽

html代码





放大

缩小

旋转

script代码

  data() {
        return {
          rotate: 0, //旋转角度
          multiples:0, //缩放大小
        }
  },
  methods: {
    // 图片旋转
        toRotate(){           
                this.ratate+= 90;
                if (this.ratate >= 360) {
                    this.ratate= 0
                }     
        },
// 滚轮缩放
        rollImg($event,val){
            // $event.wheelDelta统一为±120,其中正数表示为向上滚动,负数表示向下滚动
            if($event.wheelDelta == 120){
                this.toBIgChange()
            }else{
                this.toSmallChange()
            }
        },
toBIgChange() {
                if (this.multiples>= 300) {
                    return;
                }
                if(this.multiples+ 10 > 300){
                    this.multiples = 300
                }else{
                    this.multiples+=10
                }
          
        },
        // 缩小
        toSmallChange() {
                if(this.multiples<10) return;
                if(val - 10 < 10){
                    this.multiples = 10
                }else{
                    this.multiples-=10
                }
           
        },  
//图片拖拽
moveImg(e) {
            e.preventDefault()
            // 获取元素
            let imgWrap = this.$refs.moveWrap
            let img = this.$refs.img
            let x = e.pageX - img.offsetLeft //pageX 鼠标点击位置相对于网页左上角的水平偏移量 pageY 鼠标点击位置相对于网页左上角的垂直平偏移量
            let y = e.pageY  - img.offsetTop //offsetTop相对于其最近的非static父元素的上偏移量
            // 添加鼠标移动事件
            imgWrap.addEventListener('mousemove', move)
            function move (e) {
                img.style.left = e.pageX - x + 'px'
                img.style.top = e.pageY  - y + 'px'
            }
            // 添加鼠标抬起事件,鼠标抬起,将事件移除
            img.addEventListener('mouseup', () => {
                imgWrap.removeEventListener('mousemove', move)
            })
            imgWrap.addEventListener('mouseup', () => {
                imgWrap.removeEventListener('mousemove', move)
            })
            // 鼠标离开父级元素,把事件移除
            imgWrap.addEventListener('mouseout', () => {
                imgWrap.removeEventListener('mousemove', move)
            })
        },
  }
}```

你可能感兴趣的:(js实现图片滚轮、按钮缩放大小,图片旋转,图片拖拽)