vangleer / es-drager

A draggable, resizable, rotatable component based on vue3
https://vangleer.github.io/es-drager/
336 stars 50 forks source link

发现宽高缩放比是没有用的 还是可以随意缩放 #35

Closed caohuiboss closed 8 months ago

caohuiboss commented 8 months ago

就是文档中有三个宽高缩放的相关属性 ,但是没有效果,打个比方,我这边想要16/9那么无论如何拖拽都是16/的比例才对,但是不行 scaleRatio | 缩放比 | ^[number] | 1 equalProportion | 宽高等比缩放 | ^[boolean] aspectRatio | 宽高缩放比 | ^[boolean]

通过看源码我发,按住shift键是有用的,但是不按住shift只有equalProportion为true的时候拖拽八方点却无效

 (equalProportion || isShiftKey) && !aspectRatio
        ? rect.width / rect.height
        : aspectRatio

image

vangleer commented 8 months ago

你好,scaleRatio 是支持缩放比的,这个属性存在的条件是画布元素(也就是父元素)存在缩放才需要设置这个属性。 equalProportion: 是boolean类型,设置宽高等比缩放 aspectRatio: 是number类型,设置宽高缩放比例,按shift键进行缩放功能和equalProportion=true一样 例如:

<template>
  <div class="editor" :style="{ transform: `scale(${scaleRatio})` }">
    <Drager
      :width="100"
      :height="100"
      :left="100"
      :top="100"
      :scaleRatio="scaleRatio"
      boundary
    >
      按钮
    </Drager>
  </div>

</template>

<script setup lang="ts">
import Drager from 'es-drager/index'
const scaleRatio = 0.5
</script>
<style>
.editor {
  position: relative;
  width: 1000px;
  height: 600px;
  background-color: #ccc;
}
</style>

image

vangleer commented 8 months ago

文档 aspectRatio 的类型有误,应该是number类型,我们这边改一下

caohuiboss commented 8 months ago
boundary

谢谢大佬解答,但是我这边期望的是 当我设置了某个属性的时候,能做到拖拽八个点和isShiftKey一样的效果,但是我试了不行

vangleer commented 8 months ago

equalProportion=true 就是实现这个效果的,这个属性和aspectRatio不要同时设置

caohuiboss commented 8 months ago

equalProportion=true 就是实现这个效果的,这个属性和aspectRatio不要同时设置

image

大佬 我这边设置了 但是没有效果 还是可以随意缩放

vangleer commented 8 months ago

你的是哪个版本呐

caohuiboss commented 8 months ago

你的是哪个版本呐

我这边直接使用示例的demo,script引入的

<script src="https://unpkg.com/es-drager"></script>

查看到版本是这个 https://unpkg.com/es-drager@1.2.10/lib/index.umd.js

这边设置了的参数如下 :scaleRatio="1.7" :equalProportion="true" :width="item.w" :height="item.h" :left="item.x" :top="item.y"

x: 0, y: 0, z: 1, w: 360 / 2, h: 640 / 2,

vangleer commented 8 months ago

不是单文件组件属性不能用驼峰哦 :scale-ratio="1.7" :equal-proportion="true"

caohuiboss commented 8 months ago

不是单文件组件属性不能用驼峰哦 :scale-ratio="1.7" :equal-proportion="true"

我去,平时我这么写组件都ok的,谢谢大佬抽空解答,中划线没问题了Thanks♪(・ω・)ノ

vangleer commented 8 months ago

哈哈 我也是刚刚发现的

caohuiboss commented 8 months ago

哈哈 我也是刚刚发现的

不科学,可能是只有单文件组件是这样,项目里不这样

vangleer commented 8 months ago

是呢