fix: 旋转后的元素执行动画异常

This commit is contained in:
pipipi-pikachu 2021-04-09 12:44:11 +08:00
parent 48660ed8ec
commit 5b9b117fcb
6 changed files with 213 additions and 170 deletions

View File

@ -8,6 +8,10 @@
height: elementInfo.height + 'px', height: elementInfo.height + 'px',
transform: `rotate(${elementInfo.rotate}deg)`, transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<div <div
class="element-content" class="element-content"
@ -34,6 +38,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -85,7 +90,10 @@ export default defineComponent({
.base-element-image { .base-element-image {
position: absolute; position: absolute;
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -7,9 +7,12 @@
left: elementInfo.left + 'px', left: elementInfo.left + 'px',
width: elementInfo.width + 'px', width: elementInfo.width + 'px',
height: elementInfo.height + 'px', height: elementInfo.height + 'px',
transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
@mousedown="$event => handleSelectElement($event)" @mousedown="$event => handleSelectElement($event)"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<ImageClipHandler <ImageClipHandler
v-if="isCliping" v-if="isCliping"
@ -50,6 +53,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -149,7 +153,10 @@ export default defineComponent({
cursor: default; cursor: default;
} }
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -6,8 +6,11 @@
left: elementInfo.left + 'px', left: elementInfo.left + 'px',
width: elementInfo.width + 'px', width: elementInfo.width + 'px',
height: elementInfo.height + 'px', height: elementInfo.height + 'px',
transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<div <div
class="element-content" class="element-content"
@ -49,6 +52,7 @@
</SvgWrapper> </SvgWrapper>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -96,7 +100,10 @@ export default defineComponent({
.base-element-shape { .base-element-shape {
position: absolute; position: absolute;
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -7,9 +7,12 @@
left: elementInfo.left + 'px', left: elementInfo.left + 'px',
width: elementInfo.width + 'px', width: elementInfo.width + 'px',
height: elementInfo.height + 'px', height: elementInfo.height + 'px',
transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
@mousedown="$event => handleSelectElement($event)" @mousedown="$event => handleSelectElement($event)"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<div <div
class="element-content" class="element-content"
@ -52,6 +55,7 @@
</SvgWrapper> </SvgWrapper>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -120,7 +124,10 @@ export default defineComponent({
cursor: default; cursor: default;
} }
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -5,8 +5,11 @@
top: elementInfo.top + 'px', top: elementInfo.top + 'px',
left: elementInfo.left + 'px', left: elementInfo.left + 'px',
width: elementInfo.width + 'px', width: elementInfo.width + 'px',
transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<div <div
class="element-content" class="element-content"
@ -26,6 +29,7 @@
<div class="text ProseMirror-static" v-html="elementInfo.content"></div> <div class="text ProseMirror-static" v-html="elementInfo.content"></div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -61,7 +65,10 @@ export default defineComponent({
.base-element-text { .base-element-text {
position: absolute; position: absolute;
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
position: relative; position: relative;
padding: 10px; padding: 10px;

View File

@ -7,9 +7,12 @@
top: elementInfo.top + 'px', top: elementInfo.top + 'px',
left: elementInfo.left + 'px', left: elementInfo.left + 'px',
width: elementInfo.width + 'px', width: elementInfo.width + 'px',
transform: `rotate(${elementInfo.rotate}deg)`,
}" }"
@mousedown="$event => handleSelectElement($event)" @mousedown="$event => handleSelectElement($event)"
>
<div
class="rotate-wrapper"
:style="{ transform: `rotate(${elementInfo.rotate}deg)` }"
> >
<div <div
class="element-content" class="element-content"
@ -34,6 +37,7 @@
></div> ></div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -325,7 +329,10 @@ export default defineComponent({
cursor: default; cursor: default;
} }
} }
.rotate-wrapper {
width: 100%;
height: 100%;
}
.element-content { .element-content {
position: relative; position: relative;
padding: 10px; padding: 10px;