1. 准备工作
在开始之前,请确保你已经安装了Vue.js。以下是实现该效果的几个关键步骤:
- HTML结构:创建一个按钮和图片元素。
- CSS样式:定义图片的初始样式和摇晃效果。
- Vue实例:在Vue实例中处理点击事件和摇晃逻辑。
2. HTML结构
<template>
<div id="app">
<button @click="shakeImage">点击我摇动图片</button>
<img :class="{ shaking: isShaking }" src="your-image.jpg" alt="Shake Image">
</div>
</template>
3. CSS样式
<style>
.shaking {
animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}
@keyframes shake {
10%, 90% {
transform: translate3d(-1px, 0, 0);
}
20%, 80% {
transform: translate3d(2px, 0, 0);
}
30%, 50%, 70% {
transform: translate3d(-4px, 0, 0);
}
40%, 60% {
transform: translate3d(4px, 0, 0);
}
}
</style>
4. Vue实例
现在,我们将在Vue实例中处理点击事件和摇晃逻辑。以下是JavaScript代码:
<script>
export default {
data() {
return {
isShaking: false
};
},
methods: {
shakeImage() {
this.isShaking = true;
setTimeout(() => {
this.isShaking = false;
}, 500);
}
}
};
</script>
在上述代码中,我们定义了一个名为shakeImage
的方法,该方法在按钮被点击时触发。它将isShaking
数据属性设置为true
,这将触发CSS动画。动画完成后,我们使用setTimeout
将isShaking
重置为false
,停止动画。
5. 总结
6. 扩展
如果你想要进一步增强这个效果,可以考虑以下扩展:
- 随机摇晃:修改
shakeImage
方法,使其在每次点击时产生不同的摇晃效果。 - 摇晃持续时间:根据需要调整CSS动画的持续时间。
- 响应式设计:确保图片摇晃效果在不同设备和屏幕尺寸上都能正常工作。