Vue实现鼠标悬停动画效果详解

作者:山岚时间:2026-10-23 12:01:12浏览:600

本文介绍了在Vue项目中实现鼠标经过(悬停)动画的具体代码方案。通过监听mouseenter和mouseleave事件控制状态变量,结合CSS类名切换实现平滑的位移与透明度变化效果。文中提供了完整的HTML模板、Script逻辑及CSS样式代码,帮助开发者快速掌握Vue结合CSS实现交互动画的方法。

Vue鼠标悬停动画实现

本文分享了一个使用Vue实现鼠标悬停动画的具体代码示例,供读者参考。

Vue鼠标悬停动画实现

以下是详细的实现代码:


<template>
 <div class="hello">
 <h1>{{ msg }}</h1>
 <div class="box">
 <div class="boxchilde" @mouseenter="flag=true" @mouseleave="flag=false">
 <div :class="flag?'passing':''"></div>
 </div>
 </div>
 </div>
</template>

<script>
export default {
 name: 'HelloWorld',
 data () {
 return {
 msg: 'Welcome to Your Vue.js App',
 flag:false
 }
 }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
 .box{
 width: 100%;
 height: 100%;
 }
 .boxchilde{
 display: inline-block;
 margin: 20px;
 width: 200px;
 height: 400px;
 background-color: #ccc;
 border-radius: 5px;
 -webkit-transition: all 0.6s ease-in;
 -moz-transition: all 0.6s ease-in;
 -ms-transition: all 0.6s ease-in;
 -o-transition: all 0.6s ease-in;
 transition: all 0.6s ease-in;
 overflow: hidden;
 }
 .boxchilde:hover{
 cursor: pointer;
 -webkit-transform: translate(0,-10px);
 -moz-transform: translate(0,-10px);
 -ms-transform: translate(0,-10px);
 -o-transform: translate(0,-10px);
 transform: translate(0,-10px);
 }
 .passing {
 width: 100%;
 height: 10px;
 border-top-left-radius: 5px;
 border-top-right-radius: 5px;
 background-color: red;
 animation: passing_4500 0.8s ease-in-out 0s 1 alternate forwards;
 transform-origin: 50% 50%;
 }
 @keyframes passing_4500 {
 0% { transform:translateX(-100%); opacity:0 }
 33.33333% { transform:translateX(-100%); opacity:0 }
 66.66667% { transform:translateX(0%); opacity:1 }
 100% { transform:translateX(0%); opacity:1 }
 }
</style>

如需了解更多关于Vue的精彩内容,请点击下方专题链接查看:

Vue.js组件学习教程

Vue.js实战教程

Vue.js前端组件学习教程

以上就是本文的全部内容,希望这些内容能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

作者最新文章