过渡动画

pull/4/head
qiuhongwu 8 months ago
parent 66b6e0d0bd
commit 28a554f123

@ -1,11 +1,6 @@
<template> <template>
<transition name="slide-right">
<div class="warn" v-if="showWarning" :draggable="true" <div class="warn" v-if="showWarning" :draggable="true" @dragstart="onDragStart" @dragend="onDragEnd" @mousedown.prevent.stop="onMouseDown" @mousemove="onMouseMove" @mouseup="onMouseUp">
@dragstart="onDragStart"
@dragend="onDragEnd"
@mousedown.prevent.stop="onMouseDown"
@mousemove="onMouseMove"
@mouseup="onMouseUp">
<div class="warntitle"> <div class="warntitle">
<span> 设计预警通知</span> <span> 设计预警通知</span>
<div> <div>
@ -29,6 +24,7 @@
</div> </div>
</div> </div>
</div> </div>
</transition>
<div v-if="showFilled" @click="FoldWran" class="FoldWran"> <div v-if="showFilled" @click="FoldWran" class="FoldWran">
<span> <span>
@ -59,21 +55,21 @@ const ExpandWran = () => {
} }
// //
let dragStartX = 0; let dragStartX = 0
let dragStartY = 0; let dragStartY = 0
const onMouseDown = (event: MouseEvent) => { const onMouseDown = (event: MouseEvent) => {
dragStartX = event.clientX - document.querySelector('.warn')!.offsetLeft; dragStartX = event.clientX - document.querySelector('.warn')!.offsetLeft
dragStartY = event.clientY - document.querySelector('.warn')!.offsetTop; dragStartY = event.clientY - document.querySelector('.warn')!.offsetTop
}; }
const onMouseMove = (event: MouseEvent) => { const onMouseMove = (event: MouseEvent) => {
if (event.buttons === 1) { if (event.buttons === 1) {
const target = document.querySelector('.warn')!; const target = document.querySelector('.warn')!
target.style.left = `${event.clientX - dragStartX}px`; target.style.left = `${event.clientX - dragStartX}px`
target.style.top = `${event.clientY - dragStartY}px`; target.style.top = `${event.clientY - dragStartY}px`
} }
}; }
// const onMouseUp = () => { // const onMouseUp = () => {
// // store // // store
@ -95,7 +91,7 @@ const onMouseMove = (event: MouseEvent) => {
position: absolute; position: absolute;
top: 150px; top: 150px;
right: 0; right: 0;
width: 50px; width: 40px;
height: 40px; height: 40px;
background-color: #e6a23c; background-color: #e6a23c;
color: #fff; color: #fff;
@ -177,4 +173,21 @@ const onMouseMove = (event: MouseEvent) => {
background-color: #888; background-color: #888;
border-radius: 6px; border-radius: 6px;
} }
.slide-right-enter-active,
.slide-right-leave-active {
transition: all 0.5s ;
}
.slide-right-enter-from,
.slide-right-leave-to {
transform: translateX(100%);
opacity: 0;
}
.slide-right-enter-to,
.slide-right-leave-from {
transform: translateX(0);
}
</style> </style>

Loading…
Cancel
Save