js鼠標(biāo)拖拽

<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>*{margin: 0;padding: 0;}</style>
</head>
<body>
<div id="demo" style="position:absolute;width: 100px;height: 100px;background: #ccc;border:solid 1px #ccc;">按住左鍵拖動</div>
</body>
<script>
window.onload = function() {
//用于確定是否是拖拽的對象
var drag;
//鼠標(biāo)位于目標(biāo)元素上的時候距離目標(biāo)元素的位置
var x,y;
//取得元素
var ele = document.getElementById('demo');

    //鼠標(biāo)按下去  
    ele.onmousedown = function(evt) {  
        //取得事件對象  
        _event = evt || window.event;  
        //設(shè)置drag元素  
        target = _event.target || _event.srcElement;  
        x = _event.clientX - target.offsetLeft;  
        y = _event.clientY - target.offsetTop;  
        drag = target;  
    }  

    //鼠標(biāo)移動  
    document.onmousemove = function(evt) {  
        //確定鼠標(biāo)是在目標(biāo)元素上按下去后才開始移動  
        if(drag) {  
            _event = evt || window.event;  

            //設(shè)置邊界  
            var left = _event.clientX - x;  
            var top = _event.clientY - y;  
            body = document.documentElement || document.body;  
            if (left < 0) left = 0;  
            if (left > body.offsetWidth - drag.offsetWidth) left = body.offsetWidth - drag.offsetWidth;  
            if (top < 0) top = 0;  
            if (top > (body.offsetHeight - drag.offsetHeight)) top = (body.offsetHeight - drag.offsetHeight);  

            //設(shè)置樣式  
            drag.style.cursor = 'move';  
            drag.style.border = 'dashed 1px red';  
            drag.style.left = left + 'px';  
            drag.style.top = top + 'px';  
        }  
    }  

    //松開鼠標(biāo)  
    document.onmouseup = function(evt) {  
        if(drag) {  
            //卸載樣式  
            drag.style.cursor = '';  
            drag.style.border = 'dashed 1px #ccc';  
        }  
        drag = null;  
    }  

}  

</script>
</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們首先要明白,我們給頁面添加效果用到的js到底是什么?js其實包含三部分:dom 文檔對象模型 bom 瀏覽...
    一直以來都很好閱讀 874評論 0 0
  • 只記錄left,top同理。clientX:返回鼠標(biāo)相對于瀏覽器的水平坐標(biāo);offsetLeft:返回當(dāng)前對象距離...
    小菇?jīng)龃笏枷?/span>閱讀 979評論 0 0
  • 1. tab列表折疊效果 html: 能源系統(tǒng)事業(yè)部 崗位名稱: 工作地點 崗位名...
    lilyping閱讀 2,014評論 0 1
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評論 0 2
  • 前端開發(fā)面試知識點大綱: HTML&CSS: 對Web標(biāo)準(zhǔn)的理解、瀏覽器內(nèi)核差異、兼容性、hack、CSS基本功:...
    秀才JaneBook閱讀 2,774評論 0 25

友情鏈接更多精彩內(nèi)容