1.效果
- 鼠标移动至头像位置,弹出选项卡,个人信息和退出均可点击
- 鼠标移出界面3s后隐藏选项卡
2.源码:
- html部分
需要一个父元素box1包裹住图片和选项卡
内部一张图片,一个box2用于显示选项卡,并用v-show=‘userInfo’用来控制选项卡的显示和隐藏
<div class="box1">
<img src="" alt="" class="userMessage" @mouseover="showInfo" @mouseleave="hideInfo">
<div v-show="userInfo" class="box2">
<p @click="personMessage">个人信息</p>
<p @click="quit">退出</p>
</div>
</div>
- css部分
.box1{
//设置父元素box1为相对定位,方便后续的box2通过子绝父相来定位
position: relative;
width: 22px;
height: 22px;
margin-right: 20px;
.userMessage{
width: 100%;
height: 100%;
&:hover{
cursor: pointer;
}
}
.box2{
position: absolute;
bottom: -38px;
left: -50%;
border: 1px solid #ccc;
width: 50px;
height: 35px;
background-color: #fff;
box-sizing: border-box;
p{
margin-top: 3px;
text-align: center;
font-size: 8px;
&:hover{
cursor: pointer;
}
}
}
}
- js部分
- data里的useInfo作为v-show控制显示隐藏的参数,默认为false,默认隐藏
//当触发mouseleave时调用的方法
hideInfo(){
setTimeout(()=>{
this.userInfo=false
},3000)
},
//当触发mouseover时调用的方法
showInfo(){
this.userInfo=true
},