我做了两个方案:
1.css版本(利用opacity)
<template>
<div class="container" >
<table>
<thead>
<tr>
<th>表头</th>
</tr>
</thead>
<tbody>
<tr>
<td>今天<img src="../public/add.png" ></td>
</tr>
<tr>
<td>今天<img src="../public/add.png" ></td>
</tr>
<tr>
<td>今天<img src="../public/add.png" ></td>
</tr>
<tr>
<td>今天<img src="../public/add.png" ></td>
</tr>
</tbody>
</table>
</div>
</template>
<style lang="less" scoped>
*{
padding: 0;
margin: 0;
}
.container table{
width: 500px;
tbody {
width: 500px;
tr {
height: 4vh;
line-height: 4vh;
td{
position: relative;
img{
position: absolute;
height: 3vh;
width: 3vh;
top: 0.3vh;
right:0;
opacity: 0;
}
&:hover img{
opacity: 1;
}
}
}
}
}
</style>
2. 利用mouseenter、mouseleave事件 v-show变量控制显示隐藏
<template>
<div class="container" >
<table>
<thead>
<tr>
<th>表头</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in dayList" :key="index">
<td v-on="{mouseenter:showImg,mouseleave:hiddenImg}">{{item}}<img src="../public/add.png" v-show="showPic"></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data () {
return {
showPic: false,
dayList: ['今天', '明天', '后天', '万天']
}
},
methods:{
showImg () {
this.showPic = true
},
hiddenImg () {
this.showPic = false
}
}
}
</script>
<style lang="less" scoped>
*{
padding: 0;
margin: 0;
}
.container table{
width: 500px;
tbody {
width: 500px;
tr {
height: 4vh;
line-height: 4vh;
td{
position: relative;
img{
position: absolute;
height: 3vh;
width: 3vh;
top: 0.3vh;
right:0;
opacity: 0;
}
&:hover img{
opacity: 1;
}
}
}
}
}
</style>