<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-5  評論-41  文章-13  trackbacks-0

    在頁面中包含如下代碼之后,使用makeDraggable(item)來使頁面元素可以拖拽

     1    
     2document.onmousemove = mouseMove;
     3document.onmouseup   = mouseUp;
     4
     5var dragObject  = null;
     6var mouseOffset = null;
     7var maxTop = null;
     8var maxWidth = null;
     9
    10function getMouseOffset(target, event){
    11    event = event || window.event;
    12
    13    var docPos    = getPosition(target);
    14    var mousePos  = mouseCoords(event);
    15    return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
    16}

    17
    18function getPosition(e){
    19    var left = 0;
    20    var top  = 0;
    21
    22    while (e.offsetParent){
    23        left += e.offsetLeft;
    24        top  += e.offsetTop;
    25        e     = e.offsetParent;
    26    }

    27
    28    left += e.offsetLeft;
    29    top  += e.offsetTop;
    30
    31    return {x:left, y:top};
    32}

    33
    34function mouseMove(event){
    35    event           = event || window.event;
    36    var mousePos = mouseCoords(event);
    37
    38    if(dragObject){
    39        dragObject.style.position = 'absolute';
    40        var tmpTop = mousePos.y - mouseOffset.y;
    41        if(tmpTop<10){
    42            tmpTop = 10;
    43        }

    44        if(tmpTop>maxTop){
    45            tmpTop = maxTop;
    46        }

    47        var tmpLeft = mousePos.x - mouseOffset.x;
    48        if(tmpLeft<10){
    49            tmpLeft = 10;
    50        }

    51        if(tmpLeft>maxWidth){
    52            tmpLeft = maxWidth;
    53        }

    54        dragObject.style.top = tmpTop + "px";
    55        dragObject.style.left = tmpLeft + "px";
    56        return false;
    57    }

    58}

    59function mouseUp(){
    60    dragObject = null;
    61}

    62
    63function mouseCoords(event){
    64    if(event.pageX || event.pageY){
    65        return {x:event.pageX, y:event.pageY};
    66    }

    67    return {
    68        x:event.clientX + document.body.scrollLeft - document.body.clientLeft,
    69        y:event.clientY + document.body.scrollTop  - document.body.clientTop
    70    }
    ;
    71}

    72
    73function makeDraggable(item){
    74    if(!item) return;
    75    item.onmousedown = function(event){
    76        dragObject  = this.parentNode;
    77        mouseOffset = getMouseOffset(this, event);
    78        if(window.innerHeight>document.body.clientHeight){
    79            maxTop = window.innerHeight-dragObject.offsetHeight-50;
    80        }
    else{
    81            maxTop = document.body.clientHeight-dragObject.offsetHeight-10;
    82        }

    83        maxWidth = document.body.clientWidth-dragObject.offsetWidth-10;
    84        return true;
    85    }

    86}
    posted on 2006-12-12 17:34 OO 閱讀(880) 評論(1)  編輯  收藏 所屬分類: java相關的亂七八糟的東西

    評論:
    # re: javascript Element拖拽功能 2007-03-29 16:21 | 王鑫
    想要這個功能  回復  更多評論
      
    主站蜘蛛池模板: 国产亚洲精品AAAA片APP| 亚洲国产情侣一区二区三区| 国产成人精品日本亚洲语音| 青青草免费在线视频| 亚洲伊人久久大香线焦| 99视频全部免费精品全部四虎| 久久久久亚洲AV无码专区首JN| 久久国产乱子免费精品| 久久亚洲日韩看片无码| xx视频在线永久免费观看| 亚洲婷婷第一狠人综合精品| 成人免费午夜视频| 亚洲中文字幕乱码一区| 国产成人免费a在线资源| 香蕉国产在线观看免费| 国产AV无码专区亚洲Av| 国产成人精品无码免费看| 亚洲黄色片免费看| 无码视频免费一区二三区| 国产亚洲精彩视频| 国产亚洲精品福利在线无卡一| 精品亚洲永久免费精品| 4444亚洲国产成人精品| 拨牐拨牐x8免费| eeuss影院免费92242部| 亚洲AV无码专区国产乱码4SE| 在线永久免费的视频草莓| 国产精品久久久久久亚洲影视| 日本亚洲国产一区二区三区| 曰批全过程免费视频网址| 国产AV旡码专区亚洲AV苍井空| 亚洲AV无码乱码在线观看| 日韩精品无码免费专区网站| 久久久久精品国产亚洲AV无码| 国产精品酒店视频免费看| 韩国免费A级毛片久久| 亚洲小视频在线播放| 亚洲国产综合人成综合网站| 午夜影院免费观看| 亚洲av乱码一区二区三区按摩| 久久精品国产亚洲一区二区|