在uniapp中 js盒css里面,通过点击事件触发一个盒子从上到下过渡3秒移动100px,在过渡的时间里面,再次触发需要等待上次结束,
时间: 2024-04-10 13:27:32 浏览: 54
js实现盒子移动动画效果
在uni-app中,你可以使用Vue的事件绑定和动画属性来实现这个效果。下面是一个示例代码:
HTML:
```html
<template>
<div>
<div :class="{ 'box': true, 'moving': isMoving }"></div>
<button @click="moveBox" :disabled="isMoving">触发移动</button>
</div>
</template>
<style>
.box {
width: 100px;
height: 100px;
background-color: red;
position: relative;
transition: top 3s ease-in-out;
}
.moving {
top: 100px;
}
</style>
```
JavaScript:
```javascript
export default {
data() {
return {
isMoving: false,
};
},
methods: {
moveBox() {
if (!this.isMoving) {
this.isMoving = true;
setTimeout(() => {
this.isMoving = false;
}, 3000);
}
},
},
};
```
在这个示例中,我们使用Vue的动态类绑定将`isMoving`变量与盒子的`moving`类相关联。当`isMoving`为true时,盒子会添加`moving`类,触发动画效果。通过点击按钮时,我们检查`isMoving`是否为false,以避免重复触发动画。在移动结束后,我们使用`setTimeout`函数将`isMoving`重新设置为false,以便下一次触发动画。
注意:上述代码是基于Vue和uni-app框架的示例,如果你使用其他框架或纯JavaScript,代码可能会有所不同。
阅读全文