CSS实践:hover伪类与延时实现下拉列表
实现一个鼠标经过按钮来展示下拉菜单的交互效果:
<button class='btn'>菜单</button>
<ul class='panel'>
<li class='panel-item'>苹果</li>
<li class='panel-item'>葡萄</li>
<li class='panel-item'>香蕉</li>
<li class='panel-item'>橙子</li>
</ul>
复制代码
目标是鼠标经过按钮时,下拉菜单展示。css
代码很简单:
.btn:hover + .panel, .panel:hover{
visibility: visible
}
.panel{
visibility: hidden;
width: 100px;
height: 200px;
background: #DDD;
}
.panel-item{
width: 100%;
height: 50px;
list-style: none;
line-height: 50px;
}
复制代码
然而上面的实现有一个小缺陷,如果按钮与菜单之间有空隙,鼠标还没移动到下拉框上时,下拉框就已经收起来了。借助transition
增加延时效果就可以解决这个问题。
只需要在.panel
增加如下属性即可:
.panel{
transition: visibility .2s;
}
复制代码
效果图如下:
作者:zhangwinwin
链接:https://juejin.cn/post/6934887428616355847
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
THE END