麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

js拖拽功能實現代碼解析

2019-11-19 18:47:18
字體:
來源:轉載
供稿:網友

本文解決的問題:

1、怎樣在網頁中實現拖曳功能;

2、document.documentElementdocument.body的區別。
document.documentElement.clientWidth指整個html文檔的寬度,document.body.clientWidth的寬度。這兩者是不一樣的。可以在console控制臺通過console.log(document.documentElement)和console.log(document.body)進行測試。

3、getBoundingClientRect().leftoffsetLeft的區別。
getBoundingClientRect()用于獲取元素的left、top、right、bottom。offset獲取相對于父級的left和top。getBoundingClientRect()獲取相對于窗口的left、top、right、bottom。

4、e.clientX指的是鼠標點相對于窗口的坐標。

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>彈窗</title> <style type="text/css">  #mask {   position: fixed;   left:0;   top:0;   width:100%;   height: 100%;   background-color: hsla(250,100%,50%,0.6);   display: none;  }  #popBox {   position: absolute;   background-color: #fff;   width:200px;   height: 200px;   /*left:50%;   top:50%;*/   /*margin-top: -100px;   margin-left: -100px;*/  } </style></head><body> <button id="clickBtn">點擊</button> <div id="mask">  <div id="popBox"></div> </div> <script type="text/javascript">  var clickBtn = document.getElementById("clickBtn");  var popBox = document.getElementById("popBox")  var mask = document.getElementById("mask");  clickBtn.onclick = function() {   mask.style.display = "block";   popBox.style.left = (document.documentElement.clientWidth - popBox.offsetWidth)/2 + "px";   popBox.style.top = (document.documentElement.clientHeight - popBox.offsetHeight)/2 + "px";  }  popBox.onclick = function(e) {   var e = e || window.event;//e指所有代碼的集合,通過它可以獲取事件的各種屬性。   e.cancelBubble = true;//阻止事件冒泡,即點擊事件不會傳遞到mask這一層,意味著不會觸發點擊mask事件代碼。  }  mask.onclick = function() {   mask.style.display = "none";  }  //拖拽 mousedown->mousemove->mouseup   popBox.onmousedown = function(e) {   var e = e || window.event;   var pos = popBox.getBoundingClientRect();//getBoundingClientRect()用于獲取元素的left、top、right、bottom。offset獲取相對于父級的left和top。getBoundingClientRect()獲取相對于窗口的left、top、right、bottom。   var oX = e.clientX - pos.left;//clientX指相對于窗口的坐標。   var oY = e.clientY - pos.top;   document.onmousemove = function(e) {    var e = e || window.event;    var oLeft = e.clientX - oX;    var oTop = e.clientY - oY;    popBox.style.left = oLeft + "px";    popBox.style.top = oTop + "px";    if (oLeft<0) {     popBox.style.left = 0 + "px";    };    if (oLeft>document.documentElement.clientWidth - popBox.offsetWidth) {     popBox.style.left = document.documentElement.clientWidth - popBox.offsetWidth + "px";//document.documentElement.clientWidth指整個html文檔的寬度,document.body.clientWidth的寬度。這兩者是不一樣的。可以在console控制臺通過console.log(document.documentElement)和console.log(document.body)進行測試。    }    if (oTop<0) {     popBox.style.top = 0 + "px";    };    if (oTop > document.documentElement.clientHeight - popBox.offsetHeight) {     popBox.style.top = document.documentElement.clientHeight - popBox.offsetHeight + "px";    }   }   popBox.onmouseup = function() {    document.onmousemove = null;   }  } </script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中国美女一级黄色片 | 一级电影免费看 | 国产亚洲激情 | 国产一区日韩精品 | 销魂美女一区二区 | 最新在线中文字幕 | av在线播放免费观看 | 黄色1级视频 | 美女一级视频 | 最新欧美精品一区二区三区 | 少妇的肉体的满足毛片 | 91成人免费 | 精国产品一区二区三区 | 日韩黄在线 | 成人一级片毛片 | 久久成人激情视频 | 国产精品性夜天天视频 | 羞羞电影在线观看 | 二区国产| www久久国产 | 在线区 | 72pao成人国产永久免费视频 | 最新毛片在线观看 | 久久成人黄色 | 老女人碰碰在线碰碰视频 | 久久毛片 | 欧美a区 | 久久精品视频16 | 国产精品99久久久久久久女警 | 看一级大毛片 | 黄色试看视频 | 黄色网络免费看 | 久草在线高清视频 | 黄色aaa视频 | 国产精品久久久麻豆 | 国产乱淫av片免费网站 | 国产精品亚洲精品日韩已方 | 2021免费日韩视频网 | 成人一级视频在线观看 | 99亚洲伊人久久精品影院红桃 | 全黄裸片武则天一级第4季 偿还电影免费看 |