zoukankan      html  css  js  c++  java
  • 【JS】原生实现拖拽

    <!DOCTYPE html>
    <html lang="en">
        <head>    
            <meta charset="UTF-8">    
            <meta name="viewport" content="width=device-width, initial-scale=1.0">    
            <title>Document</title>
        </head>
        <body>    
            <!-- <img id="ball" src="https://js.cx/clipart/ball.svg" width = "100px" height = "100px" alt="">
            <object data="https://js.cx/clipart/ball.svg" width="100" height="100" type="image/svg+xml" codebase="http://www.adobe.com/svg/viewer/imstall/" /> -->
            <img id="ball" src = "https://www.baidu.com/img/bd_logo1.png?qua=high&where=super" alt = "logo">    
            <div>helloworld</div>
            <script>       
                const ball=document.querySelector("#ball")       
                ball.onmousedown = function(event) {       
                    let shiftX = event.clientX - ball.getBoundingClientRect().left;       
                    let shiftY = event.clientY - ball.getBoundingClientRect().top;        
                    ball.style.position = 'absolute';        
                    ball.style.zIndex = 1000;        
                    document.body.append(ball);        
                    moveAt(event.pageX, event.pageY);        
                    // 移动现在位于坐标 (pageX, pageY) 上的球        
                    // 将初始的偏移考虑在内        
                    function moveAt(pageX, pageY) {        
                        ball.style.left = pageX - shiftX + 'px';        
                        ball.style.top = pageY - shiftY + 'px';        
                    }        
                    function onMouseMove(event) {        
                        moveAt(event.pageX, event.pageY);        
                    }        
                    // 在 mousemove 事件上移动球        
                    document.addEventListener('mousemove', onMouseMove);        
                    // 放下球,并移除不需要的处理程序        
                    ball.onmouseup = function() {        
                        document.removeEventListener('mousemove', onMouseMove);        
                        ball.onmouseup = null;        
                        };        
                    };        
                    ball.ondragstart = function() {        
                        return false;    
                    };    
            </script>
        </body>
    </html>
    
  • 相关阅读:
    HTTP 错误 500.19 配置文件错误 ( 0x8007000d,0x80070032)
    system.web下的HttpModules节点和system.webServer下的modules节点的配置区别
    索引超出了数组界限(Microsoft.SqlServer.Smo)
    VS 附加进程调试 Web项目
    VS 调试 无法启动IIS Express Web 服务器(进程不存在)
    java基础面试题
    给dubbo接口添加白名单——dubbo Filter的使用
    mysql行转列转换
    Spring透过ApplicationListener来触发contextrefreshedevent事件
    spring mvc之请求过程源码分析
  • 原文地址:https://www.cnblogs.com/kinologic/p/15093246.html
Copyright © 2011-2022 走看看