vuejs 鼠标划上去显示,离开时隐藏?

clipboard.png
这种写法会造成元素一直闪

阅读 85k
7 个回答

如果硬要用js实现的话,那应该这么写:

<button class="bi-btn btn-primary bi-btn-end detail" v-on:mouseenter="dataDetails($parent.$index)" v-on:mouseleave="hiddenDetail($parent.$index)"></button>

但是诚然,css写不是更简单么?如果就是一个单纯的hover

类似问题困扰很久,终于找到了答案。
核心思路就是利用hover选择器。前提如下:

  1. 两元素有相同父级
  2. 需要隐藏的元素css写为 .child{visibility: hidden}
  3. 父级css .father:hover .child{ visibility: visible; }
    这样就实现了,当鼠标移入需要的元素(也就是移入父级)时,展示需要的元素

如果是移入入元素,显示子元素,同理,方法基本一致

不知道这个是不是你想要的结果

参考资料:http://blog.csdn.net/phoooob/...

你这写法不好看..可以使用transition,配合animate.css,这个有很多效果可以在线看供你选择,写法也很优雅.

clipboard.png

clipboard.png
可以参照

用一个对象, 存储当前的正在hover的元素的某个标识符作为键, 用v-on监听鼠标事件, mouseover时设置对应键的值为true, mouseleave时设为false, 想要切换显隐的元素上v-show这个元素在那个对象中对应的键即可.

这个方法对多个元素适用

css实现,注意将父元素display属性设置为 inline-block; 否则鼠标从A移入B会自动隐藏 https://www.runoob.com/try/tr...
<style>
.tooltip {

position: relative;
display: inline-block;
border-bottom: 1px dotted black;

}

.tooltip .tooltiptext {

visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;

/* 定位 */
position: absolute;
z-index: 1;

}

.tooltip:hover .tooltiptext {

visibility: visible;

}
</style>
<body style="text-align:center;">

<div class="tooltip">鼠标移动到这
<span class="tooltiptext">提示文本</span>
</div>

推荐问题
宣传栏