<template>
<view style="flex: 1;">
<view id="v" class="popup" @click="open"></view>
<view class="test"></view>
</view>
</template>
<script>
export default {
data() {
return {
transform: 'scale(0.6) translate(-50%, -50%)',
}
},
onLoad() {
},
methods: {
open() {
if ('scale(0.6) translate(-50%, -50%)' == this.transform) {
this.transform = 'scale(1) translate(-50%, -50%)';
} else {
this.transform = 'scale(0.6) translate(-50%, -50%)';
}
uni.getElementById('v')?.style.setProperty('transform', this.transform)
}
}
}
</script>
<style>
.popup {
position: fixed;
left: 50%;
top: 50%;
width: 200px;
height: 200px;
background: red;
transition-duration: 300ms;
transition-property: transform, opacity;
transition-timing-function: ease;
overflow: visible;
transform-origin: left top;
transform: scale(0.6) translate(-50%, -50%);
}
.test {
position: fixed;
left: 50%;
top: 50%;
width: 200px;
height: 200px;
background: rgba(0, 0, 0, 0.5);
}
</style>