123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- export default {
- bind(el, binding,vNode,vNode1) {
- el.style.cursor = 'move'
- el.onmousedown = function(e) {
- //鼠标按下,计算当前元素距离可视区的距离
- let disx = e.pageX - el.offsetLeft
- let disy = e.pageY - el.offsetTop
- document.onselectstart = function(e) {
- return false;
- };//解决拖动会选中文字的问题
- document.onmousemove = function(e) {
- let x = e.pageX - disx
- let y = e.pageY - disy
- let maxX = document.getElementById("box").clientWidth - parseInt(window.getComputedStyle(el).width)
- let maxY = document.getElementById("box").clientHeight - parseInt(window.getComputedStyle(el).height)
- // console.log('maxX==>',maxX)
- // console.log('maxY==>',maxY)
- if (x < 0) {
- x = 0
- } else if (x > maxX) {
- x = maxX
- }
- if (y < 0) {
- y = 0
- } else if (y > maxY) {
- y = maxY
- }
- el.style.left = x + 'px'
- el.style.top = y + 'px'
- //将此时的位置传出去
- // binding.value({
- // x: x + 'px',
- // y: y + 'px'
- // })
- };
- document.onmouseup = function(e) {
- // console.log(e.target.innerHTML,'innerHTML===')
-
- let str = e.target.innerHTML;
- let result = el.getElementsByClassName('myspan')[0].innerText;
- let x = e.pageX - disx
- let y = e.pageY - disy
- let maxX = document.getElementById("box").clientWidth - parseInt(window.getComputedStyle(el).width)
- let maxY = document.getElementById("box").clientHeight - parseInt(window.getComputedStyle(el).height)
- // console.log('maxX==>',maxX)
- // console.log('maxY==>',maxY)
- if (x < 0) {
- x = 0
- } else if (x > maxX) {
- x = maxX
- }
- if (y < 0) {
- y = 0
- } else if (y > maxY) {
- y = maxY
- }
- el.style.left = x + 'px'
- el.style.top = y + 'px'
- //将此时的位置传出去
- binding.value({
- x: x + 'px',
- y: y + 'px',
- myId:result
- })
- document.onmousemove = null;
- document.onmouseup = null;
- };
- };
- }
- }
|