国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue實現拖拽的簡單案例 不超出可視區域

2019-11-19 11:08:00
字體:
來源:轉載
供稿:網友

本文實例為大家分享了vue實現拖拽x效果的具體代碼,供大家參考,具體內容如下

實現拖拽之前,先了解幾個小常識:

這兩種獲取鼠標坐標的方法,區別在于基于的對象不同:

  • pageX和pageY獲取的是鼠標指針距離文檔(HTML)的左上角距離,不會隨著滾動條滾動而改變;
  • clientX和clientY獲取的是鼠標指針距離可視窗口(不包括上面的地址欄和滑動條)的距離,會隨著滾動條滾動而改變;

1.clientX : 是用來獲取鼠標點擊的位置距離 當前窗口 左邊的距離
2.clientY: 是用來獲取鼠標點擊的位置距離 當前窗口 上邊的距離
3.offsetWidth: 用來獲取當前拖拽元素 自身的寬度
4.offsetHeight:用來獲取當前拖拽元素 自身的高度 
5.document.documentElement.clientHeight :屏幕的可視高度
6.document.documentElement.clientWidth:屏幕的可視高度

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>vue實現拖拽</title> <script src="./js/vue.min.js"></script> </head> <style> *{margin: 0;padding:0;}  #app{   position: relative;  /*定位*/   top: 10px;   left: 10px;   width: 80px;   height: 80px;   background: #666;  /*設置一下背景*/  } </style> <body> <div id="app" @mousedown="move"> {{positionX}} {{positionY}} </div> </body><script> var vm = new Vue({ el: "#app", data: { positionX: 0, positionY: 0 }, methods: { move(e){ let odiv = e.target;// 獲取目標元素  //計算出鼠標相對點擊元素的位置,e.clientX獲取的是鼠標的位置,OffsetLeft是元素相對于外層元素的位置 let x = e.clientX - odiv.offsetLeft; let y = e.clientY - odiv.offsetTop; console.log(odiv.offsetLeft,odiv.offsetTop) document.onmousemove = (e) => {  // 獲取拖拽元素的位置  let left = e.clientX - x;  let top = e.clientY - y;  this.positionX = left;  this.positionY = top;  //console.log(document.documentElement.clientHeight,odiv.offsetHeight)  // 把拖拽元素 放到 當前的位置  if (left <= 0) {  left = 0;  } else if (left >= document.documentElement.clientWidth - odiv.offsetWidth){  //document.documentElement.clientWidth 屏幕的可視寬度  left = document.documentElement.clientWidth - odiv.offsetWidth;  }    if (top <= 0) {  top = 0;  } else if (top >= document.documentElement.clientHeight - odiv.offsetHeight){  // document.documentElement.clientHeight 屏幕的可視高度  top = document.documentElement.clientHeight - odiv.offsetHeight    }  odiv.style.left = left + "px";  odiv.style.top = top + "px"   }    // 為了防止 火狐瀏覽器 拖拽陰影問題 document.onmouseup = (e) => {  document.onmousemove = null;    document.onmouseup = null } } } })</script></html>

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西和县| 嘉禾县| 平谷区| 绩溪县| 南康市| 星座| 宿迁市| 舒城县| 金山区| 西乡县| 安顺市| 广德县| 碌曲县| 民权县| 巴彦县| 英德市| 长丰县| 芦溪县| 朝阳区| 屏南县| 鹤峰县| 七台河市| 白山市| 舟山市| 延长县| 大冶市| 安吉县| 娄烦县| 五台县| 集贤县| 宜宾县| 蓬莱市| 长治市| 松潘县| 杭锦后旗| 横山县| 东平县| 绩溪县| 托克逊县| 久治县| 沈阳市|