zoukankan      html  css  js  c++  java
  • web拖动Drag&Drop原理

    <html>
    <head>
    <title>Page Title</title>
    <style>

    .drag 
    {
        cursor
    : move;
    }




    .box 
    {
        margin
    : 0px;
        width
    : 200px;
        border
    : 1px solid #ccc;
    }

    .box h3.title 
    {
        margin
    : 0px;
        width
    : 100%;
        background-color
    : #ccc;
    }

    .box div.content 
    {
        margin
    : 0px;
        width
    : 100%;
        text-align
    : left;
    }

    </style>

    <script type="text/javascript">
    //GreatGhoul
    //
    兼容ff, ie
    //
    要拖动的对象的title设置为'dragable'
    //
    拖动点的class设置为'drag',拖动点必须为可拖动对象的子节点

    var DragableObj = {
        handle: 
    null,
        dx: 
    0,
        dy: 
    0,

        init: 
    function(e) {
            e 
    = e || event;
            
    this.handle = e.target || e.srcElement;
            
    if (this.handle.className.indexOf('drag'== -1return;
            while (this.handle.tagName != 'HTML' && this.handle.title != "dragable"
               {
                
    this.handle = this.handle.parentNode || this.handle.parentElement;
            }

            
    if (this.handle.title != 'dragable'return;
            
    this.handle.style.position = 'relative';
            
    this.dx = parseInt(this.handle.style.left + 0- e.clientX;
            
    this.dy = parseInt(this.handle.style.top  + 0- e.clientY;
            document.onmousemove 
    = DragableObj.drag;
        }
    ,
        drag: 
    function(e) {
            e 
    = e || event;
            
    if (this.handle != null{
                
    this.handle.style.left = (e.clientX + this.dx) + 'px';
                
    this.handle.style.top  = (e.clientY + this.dy) + 'px';
            }

        }
    ,
        drop: 
    function(e) {
            
    this.handle = null;
            document.onmousemove 
    = null;
        }

    }
    ;
    document.onmousedown 
    = DragableObj.init;
    document.onmouseup   
    = DragableObj.drop;
    document.onselectstart 
    = function(e) {
        e 
    = e || event;
        eo 
    = e.target || event.srcElement;
        
    if (eo.className.indexOf('drag'!= -1return false;
    }
    ;

    </script>
    </head>
    <body>
    <br>例1:
    <div class="box" title="dragable">
    <h3 class="drag title">拖动标题</h3>
    <div class="content">内容</div>
    </div>

    <br>例2:
    <div class="drag" title="dragable">拖动我</div>

    </body>
    </html>
  • 相关阅读:
    将HTTP请求对象转成curl命令行
    图片爬虫实践
    [CF1499E] Chaotic Merge
    [ICPC2020南京I] Interested in Skiing
    [ICPC2018西安J] Philosophical … Balance
    [ICPC2018西安L] Eventual … Journey
    [ICPC2018西安I] Misunderstood … Missing
    [ICPC2018西安D] Deja vu of … Go Players
    [ICPC2018西安F] Interstellar … Fantasy
    [ICPC2020南京L] Let's Play Curling
  • 原文地址:https://www.cnblogs.com/hainange/p/6153302.html
Copyright © 2011-2022 走看看