拖拽效果

Posted debug

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拖拽效果相关的知识,希望对你有一定的参考价值。

html

<div id="ball"></div>

css

#ballwidth: 100px; height: 100px; background: blue; border-radius: 50%; position: absolute;

js

        function $elem(id)
            return document.getElementById(id);
        

        let [enbleMove, ballOffsetX, ballOffsetY] = [false, 0, 0];
        //鼠标按下
        $elem('ball').addEventListener(
            'mousedown', e=>
                [enbleMove, ballOffsetX, ballOffsetY] = [true, e.offsetX, e.offsetY];
                e.target.style.cursor = 'move';
            
        );
        //鼠标移动
        window.addEventListener(
            'mousemove', e=>
                if(enbleMove)
                    $elem('ball').style.top = (e.clientY - ballOffsetY) + 'px';
                    $elem('ball').style.left = (e.clientX - ballOffsetX) + 'px';
                
            
        );
        //鼠标弹起
        $elem('ball').addEventListener(
            'mouseup', e=>
                enbleMove = false;
                e.target.style.cursor = 'default';
            
        );

以上是关于拖拽效果的主要内容,如果未能解决你的问题,请参考以下文章

JS拖拽效果的原理及实现

js拖拽效果

React.js实现原生js拖拽效果及思考

React.js实现原生js拖拽效果及思考

React.js实现原生js拖拽效果及思考

android 自定义View:仿QQ拖拽效果