Skip to content

Commit

Permalink
feat: 支持 vue.extend 组件引入使用
Browse files Browse the repository at this point in the history
  • Loading branch information
dengwb1991 committed Jun 7, 2023
1 parent c522316 commit 7586bed
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 117 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
## 0.0.6
2023-06-07

支持 vue.extend 组件引入使用

```js
import dragging from 'vue-directive-dragging'

let D3KitConstrutor = Vue.extend({
directives: {
dragging: dragging.draggingDirective
}
})
```

## 0.0.5
2023-02-13

Expand Down
77 changes: 40 additions & 37 deletions dist/vue-directive-dragging.esm.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* vue-directive-dragging v0.0.5
* vue-directive-dragging v0.0.6
* (c) 2023 dengwb
* @license MIT
*/
Expand All @@ -26,52 +26,55 @@ var events = {
}
};

function install(Vue, options) {
var _el = null;
var diffTop = null;
var diffLeft = null;
var value = {};
var _el = null;
var diffTop = null;
var diffLeft = null;
var value = {};

function handleDragStart(event) {
value.prevent && event.preventDefault();
diffLeft = event.touches[0].pageX - _el.offsetLeft;
diffTop = event.touches[0].pageY - _el.offsetTop;
}
function handleDragStart(event) {
value.prevent && event.preventDefault();
diffLeft = event.touches[0].pageX - _el.offsetLeft;
diffTop = event.touches[0].pageY - _el.offsetTop;
}

function handleDragMove(event) {
event.preventDefault();
var left = event.touches[0].pageX - diffLeft;
var top = event.touches[0].pageY - diffTop;
function handleDragMove(event) {
event.preventDefault();
var left = event.touches[0].pageX - diffLeft;
var top = event.touches[0].pageY - diffTop;

_el.style.left = left + 'px';
_el.style.top = top + 'px';
}
function saveDragItem(el, binding, vnode) {
_el = el;
value = _extends({
prevent: binding.prevent === false ? false : true
}, binding.value);
events.on(el, 'touchstart', handleDragStart);
events.on(el, 'touchmove', handleDragMove);
}
_el.style.left = left + 'px';
_el.style.top = top + 'px';
}
function saveDragItem(el, binding, vnode) {
_el = el;
value = _extends({
prevent: binding.prevent === false ? false : true
}, binding.value);
events.on(el, 'touchstart', handleDragStart);
events.on(el, 'touchmove', handleDragMove);
}

function updateDragItem(el, binding, vnode) {}
function updateDragItem(el, binding, vnode) {}

function removeDragItem(el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart);
events.off(el, 'touchmove', handleDragMove);
}
function removeDragItem(el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart);
events.off(el, 'touchmove', handleDragMove);
}

Vue.directive('dragging', {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
});
var draggingDirective = {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
};

function install(Vue, options) {
Vue.directive('dragging', draggingDirective);
}

var index = {
install: install,
version: '0.0.5'
draggingDirective: draggingDirective,
version: '0.0.6'
};

export default index;
77 changes: 40 additions & 37 deletions dist/vue-directive-dragging.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* vue-directive-dragging v0.0.5
* vue-directive-dragging v0.0.6
* (c) 2023 dengwb
* @license MIT
*/
Expand Down Expand Up @@ -32,52 +32,55 @@
}
};

function install(Vue, options) {
var _el = null;
var diffTop = null;
var diffLeft = null;
var value = {};
var _el = null;
var diffTop = null;
var diffLeft = null;
var value = {};

function handleDragStart(event) {
value.prevent && event.preventDefault();
diffLeft = event.touches[0].pageX - _el.offsetLeft;
diffTop = event.touches[0].pageY - _el.offsetTop;
}
function handleDragStart(event) {
value.prevent && event.preventDefault();
diffLeft = event.touches[0].pageX - _el.offsetLeft;
diffTop = event.touches[0].pageY - _el.offsetTop;
}

function handleDragMove(event) {
event.preventDefault();
var left = event.touches[0].pageX - diffLeft;
var top = event.touches[0].pageY - diffTop;
function handleDragMove(event) {
event.preventDefault();
var left = event.touches[0].pageX - diffLeft;
var top = event.touches[0].pageY - diffTop;

_el.style.left = left + 'px';
_el.style.top = top + 'px';
}
function saveDragItem(el, binding, vnode) {
_el = el;
value = _extends({
prevent: binding.prevent === false ? false : true
}, binding.value);
events.on(el, 'touchstart', handleDragStart);
events.on(el, 'touchmove', handleDragMove);
}
_el.style.left = left + 'px';
_el.style.top = top + 'px';
}
function saveDragItem(el, binding, vnode) {
_el = el;
value = _extends({
prevent: binding.prevent === false ? false : true
}, binding.value);
events.on(el, 'touchstart', handleDragStart);
events.on(el, 'touchmove', handleDragMove);
}

function updateDragItem(el, binding, vnode) {}
function updateDragItem(el, binding, vnode) {}

function removeDragItem(el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart);
events.off(el, 'touchmove', handleDragMove);
}
function removeDragItem(el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart);
events.off(el, 'touchmove', handleDragMove);
}

Vue.directive('dragging', {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
});
var draggingDirective = {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
};

function install(Vue, options) {
Vue.directive('dragging', draggingDirective);
}

var index = {
install: install,
version: '0.0.5'
draggingDirective: draggingDirective,
version: '0.0.6'
};

return index;
Expand Down
4 changes: 2 additions & 2 deletions dist/vue-directive-dragging.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vue-directive-dragging",
"version": "0.0.5",
"version": "0.0.6",
"description": "Implementing a drag-and-drop plugin based on the vue directive",
"main": "./dist/vue-directive-dragging.min.js",
"scripts": {
Expand Down
83 changes: 43 additions & 40 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,56 @@ const events = {
}
}

function install (Vue, options) {
let _el = null
let isTouch = true
let diffTop = null
let diffLeft = null
let value = {}

function handleDragStart (event) {
value.prevent && event.preventDefault()
diffLeft = event.touches[0].pageX - _el.offsetLeft
diffTop = event.touches[0].pageY - _el.offsetTop
}
let _el = null
let isTouch = true
let diffTop = null
let diffLeft = null
let value = {}

function handleDragMove (event) {
event.preventDefault()
const left = event.touches[0].pageX - diffLeft
const top = event.touches[0].pageY - diffTop
function handleDragStart (event) {
value.prevent && event.preventDefault()
diffLeft = event.touches[0].pageX - _el.offsetLeft
diffTop = event.touches[0].pageY - _el.offsetTop
}

_el.style.left = `${left}px`
_el.style.top = `${top}px`
}
function saveDragItem (el, binding, vnode) {
_el = el
value = {
prevent: binding.prevent === false ? false : true,
...binding.value
}
events.on(el, 'touchstart', handleDragStart)
events.on(el, 'touchmove', handleDragMove)
}

function updateDragItem (el, binding, vnode) {
}

function removeDragItem (el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart)
events.off(el, 'touchmove', handleDragMove)
function handleDragMove (event) {
event.preventDefault()
const left = event.touches[0].pageX - diffLeft
const top = event.touches[0].pageY - diffTop

_el.style.left = `${left}px`
_el.style.top = `${top}px`
}
function saveDragItem (el, binding, vnode) {
_el = el
value = {
prevent: binding.prevent === false ? false : true,
...binding.value
}
events.on(el, 'touchstart', handleDragStart)
events.on(el, 'touchmove', handleDragMove)
}

function updateDragItem (el, binding, vnode) {
}

function removeDragItem (el, binding, vnode) {
events.off(el, 'touchstart', handleDragStart)
events.off(el, 'touchmove', handleDragMove)
}

const draggingDirective = {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
}

Vue.directive('dragging', {
bind: saveDragItem,
update: updateDragItem,
unbind: removeDragItem
})
function install (Vue, options) {
Vue.directive('dragging', draggingDirective)
}

export default {
install,
draggingDirective,
version: '__VERSION__'
}

0 comments on commit 7586bed

Please sign in to comment.