为什么网站导航崩溃得这么快?
Why is the site navigation collapsing so fast?
当您查看本网站的菜单时:
https://www.eurotuin.be/
当你试图将它悬停时,它会很快崩溃。
see the menu here
我试过使用以下代码进行试验,但它似乎不起作用:
.main-nav__link {
transition:all 0s ease 0s!important;
}
这个效果一样:
.main-nav__link {
transition:all 3s ease 3s!important;
}
两件事:
如果持续时间为 0 秒,转换会有什么影响(我不是专家,这是一个真正的问题)?此外,过渡应用于您的 link,它不会对您的菜单(这是不同的元素)产生任何影响。
所以这里的问题是:随着显示 属性 从 none 变为阻塞,您的菜单 shown/hidden。
更准确地说,.hide() 和 .show() 应用于 mouseout 和 mouseover 事件(来自 li 元素)的菜单元素。所以菜单'hide'和'show'鼠标一进入或退出li元素。
另请注意,显示 属性 无法设置动画或过渡。
作为一个新人,这是最好的解决方案
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.dropbtn {
background-color: #04AA6D;
color: white;
padding: 16px;
font-size: 16px;
border: none;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #ddd;}
.dropdown:hover .dropdown-content {display: block;}
.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
</head>
<body>
<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>
<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>
<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>
您目前正在使用 'display',这不是可以转换的东西。
你应该使用一些可以转换的东西,比如 'opacity' 结合 'visibility'。
下面的代码应该可以达到预期的效果。
.main-nav__flyout {
display: block !important;
}
.main-nav__item .main-nav__flyout {
transition: all 0.5s ease 0.2s!important;
opacity: 0;
visibility: hidden;
}
.main-nav__item:hover .main-nav__flyout {
opacity: 1;
visibility: visible;
}
当您查看本网站的菜单时: https://www.eurotuin.be/
当你试图将它悬停时,它会很快崩溃。 see the menu here
我试过使用以下代码进行试验,但它似乎不起作用:
.main-nav__link {
transition:all 0s ease 0s!important;
}
这个效果一样:
.main-nav__link {
transition:all 3s ease 3s!important;
}
两件事:
如果持续时间为 0 秒,转换会有什么影响(我不是专家,这是一个真正的问题)?此外,过渡应用于您的 link,它不会对您的菜单(这是不同的元素)产生任何影响。
所以这里的问题是:随着显示 属性 从 none 变为阻塞,您的菜单 shown/hidden。
更准确地说,.hide() 和 .show() 应用于 mouseout 和 mouseover 事件(来自 li 元素)的菜单元素。所以菜单'hide'和'show'鼠标一进入或退出li元素。
另请注意,显示 属性 无法设置动画或过渡。
作为一个新人,这是最好的解决方案
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.dropbtn {
background-color: #04AA6D;
color: white;
padding: 16px;
font-size: 16px;
border: none;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #ddd;}
.dropdown:hover .dropdown-content {display: block;}
.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
</head>
<body>
<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>
<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>
<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>
您目前正在使用 'display',这不是可以转换的东西。
你应该使用一些可以转换的东西,比如 'opacity' 结合 'visibility'。
下面的代码应该可以达到预期的效果。
.main-nav__flyout {
display: block !important;
}
.main-nav__item .main-nav__flyout {
transition: all 0.5s ease 0.2s!important;
opacity: 0;
visibility: hidden;
}
.main-nav__item:hover .main-nav__flyout {
opacity: 1;
visibility: visible;
}