| 123456789101112131415161718192021222324252627282930313233343536 |
- import Vue from 'vue';
- let isDragging = false;
- export default function(element, options) {
- if (Vue.prototype.$isServer) return;
- const moveFn = function(event) {
- if (options.drag) {
- options.drag(event);
- }
- };
- const upFn = function(event) {
- document.removeEventListener('mousemove', moveFn);
- document.removeEventListener('mouseup', upFn);
- document.onselectstart = null;
- document.ondragstart = null;
- isDragging = false;
- if (options.end) {
- options.end(event);
- }
- };
- element.addEventListener('mousedown', function(event) {
- if (isDragging) return;
- document.onselectstart = function() { return false; };
- document.ondragstart = function() { return false; };
- document.addEventListener('mousemove', moveFn);
- document.addEventListener('mouseup', upFn);
- isDragging = true;
- if (options.start) {
- options.start(event);
- }
- });
- }
|