• jQuery拖拽原理实例


    HTML源代码

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>拖拽实例</title>
    <link rel="stylesheet" href="drag.css">
    <script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
    <script src="drag.js"></script>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    CSS源代码

    *{
        margin: 0;
        padding:0;
    }
    
    div{
        width: 100px;
        height: 100px;
        background: #f00;
        cursor: pointer;
        position: absolute;
        left: 0;
        top: 0;
    }

    JS源代码 

    $(function(){
        $('div').mousedown(function(e){
    
            //offset()在匹配的元素集合中,获取的第一个元素的当前坐标,坐标相对于文档
            var positionDiv = $(this).offset();
            var distenceX = e.pageX - positionDiv.left;
            var distenceY = e.pageY - positionDiv.top;
            // alert(positionDiv.left);
    
            $(document).mousemove(function(e) {
            var x = e.pageX - distenceX;
            var y = e.pageY - distenceY;
            //防止将元素拖拽出浏览器窗口
            if(x<0){
                x=0;
            }else if(x>$(document).width()-$('div').outerWidth(true)){
                x=$(document).width()-$('div').outerWidth(true);
            }
            if(y<0){
                y=0
            }else if(y>$(document).height()-$('div').outerHeight(true)){
                y=$(document).height()-$('div').outerHeight(true);
            }
            $('div').css({
                'left':x+'px',
                'top':y+'px'
            });
        });
        $(document).mouseup(function() {
            //unbind和off都可以解除绑定时间
            $(document).unbind('mousemove');
        });
        });
    });
  • 相关阅读:
    创建基于 SQL Server 表的外部内容类型
    symfony入门之 app/console 命令
    git上传代码到github
    ubuntu下配置apache虚拟主机
    ubuntu14.04下解决编辑器无法输入中文
    PHP把域名解析为站点IP
    mysql平常总结
    php防sql注入函数
    常用的正则检测总结
    redis缓存注意事项
  • 原文地址:https://www.cnblogs.com/littlefly/p/3677509.html
Copyright © 2020-2023  润新知