• JS 拖动DIV 需要JQUERY 支持


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>自由拖动的DIV层方块</title>
        <meta http-equiv="content-type" content="text/html;charset=gb2312">
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <style type="text/css">
            #draggable {
                background-color: green;
                font-size: 9pt;
                padding: 30px;
                color: white;
                width: 360px;
                height: 224px;
                position: absolute;
            }
        </style>
        <script type="text/javascript">
            var Drager = function () {
                
            };
            Drager.dom = null;
            Drager.selector = null;
            Drager.prototype.xdrag = function (dom, selector) {
                var obj = this;
                obj.selector = selector;
                dom.onmousedown = function (e) {
                    e = obj.getEvent(e);
                    e.preventDefault && e.preventDefault();
                    obj.dom  = this;
                    obj.dom.x = e.clientX+$(window).scrollLeft() - obj.dom.offsetLeft;
                    obj.dom.y = e.clientY + $(window).scrollTop() - obj.dom.offsetTop;
                    document.onmousemove = function (e) { obj.move(e, obj); };
                    document.onmouseup = function (e) { obj.end(e, obj); };
                };
            };
            Drager.prototype.getEvent = function (e) {
                if (!e) {
                    e = window.event;
                    e.target = e.srcElement;
                    e.layerX = e.offsetX;
                    e.layerY = e.offsetY;
                }
                return e;
            };
            Drager.prototype.move = function (e,srcObj) {
                
                e = srcObj.getEvent(e);
                var oLeft, oTop;
                oLeft = e.clientX + $(window).scrollLeft() - srcObj.dom.x;
                oTop = e.clientY + $(window).scrollTop() - srcObj.dom.y;
    
                
                if (srcObj.selector != null) {
                    if (oLeft > parseInt( srcObj.dom.style.left)) {
                        if (oLeft + $(srcObj.dom).outerWidth() > $(srcObj.selector).offset().left + $(srcObj.selector).outerWidth()) {
                            oLeft = $(srcObj.selector).offset().left + $(srcObj.selector).outerWidth() - $(srcObj.dom).outerWidth();
                        }
                    } else if (oLeft < parseInt(srcObj.dom.style.left)) {
                        if (oLeft < $(srcObj.selector).offset().left ) {
                            oLeft = $(srcObj.selector).offset().left ;
                        }
                    }
                    if (oTop > parseInt(srcObj.dom.style.top)) {
                        if (oTop + $(srcObj.dom).outerHeight() > $(srcObj.selector).offset().top + $(srcObj.selector).outerHeight()) {
                            oTop = $(srcObj.selector).offset().top + $(srcObj.selector).outerHeight() - $(srcObj.dom).outerHeight();
                        }
                    } else if (oTop < parseInt(srcObj.dom.style.top)) {
                        if (oTop < $(srcObj.selector).offset().top) {
                            oTop = $(srcObj.selector).offset().top;
                        }
                    }
                }
                srcObj.dom.style.left = oLeft + 'px';
                srcObj.dom.style.top = oTop + 'px';
            };
            Drager.prototype.end = function (e,srcObj) {
                e = srcObj.getEvent(e);
                srcObj.dom = document.onmousemove = document.onmouseup = null;
            };
           
            var drag = new Drager();
        </script>
        <script type="text/javascript">
           
            window.onload = function () {
                var obj = document.getElementById('draggable');
    //第二个参数是限制范围,可不填 drag.xdrag(obj,
    ".container"); } </script> </head> <body> <div class="container" style="800px;height:500px; background-color:red;"> <div id="draggable">这个可以拖动!</a></div> </div> </body> </html>
  • 相关阅读:
    第八次作业
    微信用户体验
    •设计一款给爸爸妈妈用的手机
    对类的继承
    必应词典
    第二次作业二
    第二次作业
    我想搞的软工
    数字签名
    C++的学习心得
  • 原文地址:https://www.cnblogs.com/xdoudou/p/3664487.html
Copyright © 2020-2023  润新知