javascript - onmousemove为什么一定要委托在document上?
伊谢尔伦
伊谢尔伦 2017-04-11 11:28:50
[JavaScript讨论组]
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{margin: 0px; padding: 0px;}
            p {
                width: 200px;
                height: 200px;
                background: green;
                position: absolute;
                cursor: move;
            }
        </style>
    </head>
    <body>
        <p></p>
    </body>
    <script type="text/javascript">
        var p = document.querySelector('p');
        
        var pWidth = p.offsetWidth;
        var pHeight = p.offsetHeight;
        var maxWidth = document.documentElement.clientWidth - pWidth;
        var maxHeight = document.documentElement.clientHeight - pHeight; 
    
        p.onmousedown = function(e){
            var pLeft = p.offsetLeft;
            var pTop = p.offsetTop;
            var eLeft = e.clientX;
            var eTop = e.clientY;
            var _x = eLeft - pLeft;
            var _y = eTop - pTop;
            document.documentElement.onmousemove = function(ev){
                console.log(111);
                var evLeft = ev.clientX;
                var evTop = ev.clientY;
                var x = evLeft - _x;
                var y = evTop - _y;
                if(x>=maxWidth){
                    x = maxWidth;
                }
                if(x<0){
                    x = 0;
                }
                if(y>=maxHeight){
                    y = maxHeight;
                }
                if(y<0){
                    y = 0;
                }
                
            p.style.left = x+'px';
            p.style.top = y+'px';
            }    
        }
        
        document.documentElement.onmouseup = function(){
            document.documentElement.onmousemove = null;
        }
        
        
        
    </script>
</html>
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
天蓬老师

你是在document上对p进行移动的呀,当然委托给document来获取鼠标的坐标值最为方便最为准确了。

大家讲道理

谁说一定呀!!!

PHP中文网
p.onmousemove

不是一定的绑在p也可以

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号