激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - 原生JS實現(xiàn)拖拽功能

原生JS實現(xiàn)拖拽功能

2021-12-14 16:07Dreamer_xr JavaScript

這篇文章主要為大家介紹了JS實現(xiàn)拖拽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JS實現(xiàn)拖拽功能的具體代碼,供大家參考,具體內(nèi)容如下

拖拽的原理:三個事件 onmousedownonmousemoveonmousemove

1、鼠標按下,觸發(fā)onmousedown,獲取鼠標坐標x,y,獲取元素坐標x,y

通過event.clientX、event.clientY獲取鼠標位置的坐標

?
1
2
let x = e.clientX - box.offsetLeft; //鼠標點擊坐標距離盒子左邊緣的距離
let y = e.clientY - box.offsetTop; //鼠標點擊坐標距離盒子上邊緣的距離

2、設置元素left、top值,(元素要設置position:absolute)

?
1
2
box.style.left = ev.clientX - x + 'px';
box.style.top = ev.clientY - y + 'px';

3、放開鼠標取消dom事件

下面是詳細代碼:我只開了橫向移動

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<html lang="en">
 
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style>
 #box {
 width: 100px;
 height: 100px;
 background: red;
 position: absolute
 }
 
 </style>
</head>
 
<body style="position: relative;overflow: hidden;">
 <div id="box">
 
 </div>
 
 <script>
 window.onload = function () {
 let box = document.getElementById('box')
 box.onmousedown = function (ev) {
 let e = ev || event;
 let x = e.clientX - box.offsetLeft; //鼠標點擊坐標距離盒子左邊緣的距離
 let y = e.clientY - box.offsetTop; //鼠標點擊坐標距離盒子上邊緣的距離
 document.onmousemove = function (ev) {
  let e = ev || event;
  box.style.left = ev.clientX - x + 'px';
  box.style.top = ev.clientY - y + 'px';
  
  let bodyScreenX = ev.screenX
  let bodyClientWidth = document.body.clientWidth
  
  document.onmouseup = function (ev) {
  if (ev.clientX - x < 0) {
  box.style.left = 0
  } else if (bodyScreenX > bodyClientWidth) {
  box.style.right = 0
  box.style.left = bodyClientWidth - 100 + 'px'
  }
  document.onmousemove = null;
  document.onmouseup = null;
  }
 }
 }
 }
 
 </script>
</body>
 
</html>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/xr510002594/article/details/91392265

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一区二区三区不卡免费观看 | 欧美无极品 | 精品国产一区二区三区在线观看 | 福利视频亚洲 | 黄网站免费观看视频 | 嫩呦国产一区二区三区av | 午夜国产成人 | 一级黄色影片在线观看 | 爽成人777777婷婷 | 久久精品久 | 91成人免费版 | 成人免费看视频 | 亚洲成人福利在线观看 | 亚洲射逼 | 国产91一区二区三区 | 国产资源视频在线观看 | 欧美亚洲国产一区二区三区 | 精品国产一区二区三区四区阿崩 | 欧美成人一区二区三区电影 | 青青国产在线视频 | 5a级毛片| 成人免费毛片明星色大师 | 看av网址 | 久久久电影电视剧免费看 | 亚洲精品一区国产精品丝瓜 | 99国产精品欲a | 久久精品伊人网 | 日本成人二区 | 高清一区二区在线观看 | 欧美成人一区二区三区 | 国产高潮国产高潮久久久91 | 精品国产一区二区三区四区在线 | 精国产品一区二区三区四季综 | 国产日韩精品欧美一区视频 | 亚洲免费片 | 欧美日本日韩 | 久久午夜免费视频 | 一区二区三区在线观看av | 黄色网址在线免费 | bt 自拍 另类 综合 欧美 | 国产成年人视频 |