Javascript 悬停2秒时显示下拉菜单 P> >考虑下面的代码。当我们悬停在按钮上时,下拉立即显示,没有任何延迟。如果有的话,我们可以推迟下拉菜单的出现,因为我们希望避免菜单上的意外悬停。
Javascript 悬停2秒时显示下拉菜单 P> >考虑下面的代码。当我们悬停在按钮上时,下拉立即显示,没有任何延迟。如果有的话,我们可以推迟下拉菜单的出现,因为我们希望避免菜单上的意外悬停。,javascript,jquery,html,css,drop-down-menu,Javascript,Jquery,Html,Css,Drop Down Menu,.dropbtn{ 背景色:#4CAF50; 颜色:白色; 填充:16px; 字体大小:16px; 边界:无; 光标:指针; } .下拉列表{ 位置:相对位置; 显示:内联块; } .下拉内容{ 显示:无; 位置:绝对位置; 背景色:#f9f9f9; 最小宽度:160px; 盒影:0px 8px 16px 0px rgba(0,0,0,0.2); } .下拉内容a{ 颜色:黑色; 填充:12px 16px; 文字装饰:无; 显示:块; } .下拉内容a:悬停{背景色:#f1f1} .下拉:悬停.
.dropbtn{
背景色:#4CAF50;
颜色:白色;
填充:16px;
字体大小:16px;
边界:无;
光标:指针;
}
.下拉列表{
位置:相对位置;
显示:内联块;
}
.下拉内容{
显示:无;
位置:绝对位置;
背景色:#f9f9f9;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
}
.下拉内容a{
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
}
.下拉内容a:悬停{背景色:#f1f1}
.下拉:悬停.下拉内容{
显示:块;
}
.dropdown:悬停.dropbtn{
背景色:#3e8e41;
}
下拉列表
简单的纯CSS解决方案:
使用opacity
而不是display
,并将转换延迟设置为2s
.dropbtn{
背景色:#4CAF50;
颜色:白色;
填充:16px;
字体大小:16px;
边界:无;
光标:指针;
}
.下拉列表{
位置:相对位置;
显示:内联块;
}
.下拉内容{
不透明度:0;
位置:绝对位置;
背景色:#f9f9f9;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
}
.下拉内容a{
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
}
.下拉内容a:悬停{背景色:#f1f1}
.下拉:悬停.下拉内容{
不透明度:1;
过渡:不透明度;
过渡延迟:2s;
}
.dropdown:悬停.dropbtn{
背景色:#3e8e41;
}
下拉列表
.dropbtn{
背景色:#4CAF50;
颜色:白色;
填充:16px;
字体大小:16px;
边界:无;
光标:指针;
}
.下拉列表{
位置:相对位置;
显示:内联块;
}
.下拉内容{
显示:无;
位置:绝对位置;
背景色:#f9f9f9;
最小宽度:160px;
盒影:0px 8px 16px 0px rgba(0,0,0,0.2);
}
.下拉内容a{
颜色:黑色;
填充:12px 16px;
文字装饰:无;
显示:块;
}
.下拉内容a:悬停{背景色:#f1f1}
.dropdown:悬停.dropbtn{
背景色:#3e8e41;
}
$(函数(){
//使用“.dropbtn”类在html元素上创建悬停事件
$(“.dropbtn”).hover(函数(){
/*
显示类为“.dropdown content”的html元素
2000毫秒(2秒)后
*/
$(“.dropdown content”).show(2000年);
},
函数(){
$(“.dropdown content”).hover(函数(){
//显示此(当前)html元素
$(this.show();
},函数(){
/*
在1000毫秒后隐藏此(当前)html元素
(1秒)
*/
$(此).hide(1000);
});
});
});
下拉列表
整版
您可以在css中使用transition,也可以通过jquery/javascript超时函数来实现。使用css可能有点困难,而使用jquery可以更好地解决问题
<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {
background-color: #4CAF50;
color: white;
padding: 16px;
font-size: 16px;
border: none;
cursor: pointer;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #f1f1f1}
.dropdown:hover .dropbtn {
background-color: #3e8e41;
}
</style>
<!-- importing jquery cdn -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(function(){
// creating hover event on html element with ".dropbtn" class
$(".dropbtn").hover(function(){
/*
show the html element with class ".dropdown-content"
after 2000 millisecond(2 second)
*/
$(".dropdown-content").show(2000);
},
function(){
$(".dropdown-content").hover(function(){
// show this(current) html element
$(this).show();
},function(){
/*
hide this(current) html element after 1000 millisecond
(1second)
*/
$(this).hide(1000);
});
});
});
</script>
</head>
<body>
<div class="dropdown">
<button class="dropbtn">Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
</body>
</html>
Full page