vue组态中如何实现组件的拖拽和缩放
组态项目参考
理解css实现鼠标拖拽移动的原理
其实在vue中实现组件的拖拽和缩放,核心应该在于css中如何实现拖拽和缩放,以及css的offsetX,clientX等样式的掌握。所以,在做vue组态中实现组件拖拽和移动之前,先来理解css实现移动拖拽的逻辑:
对css实现拖拽的理解的参考
通过上图可以知道,不管元素如何移动。通过鼠标移动元素的时候,distX和distY始终保持不变。
所以元素的坐标位置可以通过:( 鼠标X坐标 – distX , 鼠标Y坐标 – distY ) 获得。
鼠标的任意时刻坐标可以通过鼠标事件获取。如何获取distX , distY ,就成了获取元素任意时刻位置的关键。
获得了元素的位置,就可以通过给元素定位的方式或者transfrom的方式进行移动元素。
vue中实现鼠标移动拖拽组件
demo演示:
<!-- vue组态实现矩形在画布内移动: -->
<template>
<div
id="test"
@mousemove="get"
:style="{'left':fastartLeft+'px','top':fastartTop+'px'}">
<h1>测试vue组态--实现移动和拖拽</h1>
<p>鼠标坐标:</p>
<p>{
{
left}}</p>
<p>{
{
top}}</p>