拖拽怎么按比列放大缩小

拖拽的时候创建一个div,根据拖拽距离div改变大小,怎么让这个div按比例放大缩小,比如4:6,1:2

阅读 5.3k
3 个回答

谢邀~

没get到你的问题,
不明白怎么获取拖拽距离? 拖拽元素点击事件: function onclick(e){console.log(e)};+mouse move
按比例缩放?(这个规则一打眼看到这个需求不应该是根据逻辑自己定义的吗?)

window.onload = function(){

        /*
            1)摁住#box
                绑定mousedown
            2)移动鼠标
                * 绑定mousemove事件
                * 摁住后移动鼠标才有效果
                * 改变#box的top,left
         */
        var box = document.getElementById('box');
        // 给#box绑定mousedown事件
        box.onmousedown = function(e){
            // 鼠标摁下时,光标位置距离#box的偏移量
            var ox = e.offsetX;
            var oy = e.offsetY;

            // 怎么保证移动的时候鼠标已经摁下
            document.onmousemove = function(evt){
                box.style.left = evt.clientX - ox +'px';
                box.style.top = evt.clientY - oy +'px';

                evt.preventDefault();
            }

            // 阻止默认行为
            e.preventDefault();
        }

        // 当鼠标松开时,清除mousemove事件
        window.onmouseup = function(){
            document.onmousemove = null;
        }
    }

如果是业务需求,可以使用jquery-UI的按比例缩放。Jquery-UI

推荐问题