javascript - 当菜单可滚动时,将子菜单保持在屏幕底部
问题描述
我创建了一个垂直可滚动菜单,其中包括许多主要类别。
当有人将鼠标悬停在一个主要类别上时,它将向他显示一个子菜单。我希望这个子菜单与主类别具有相同的高度。
但是当主菜单滚动时,子菜单超出了高度。以不超过高度并锁定在底部的方式完成?
我正在向您发送一些图像以了解问题。
正确
正确
现在主菜单滚动
错误时的一些图像
错误
我的 twig-html 代码是:
<div class="dd_menu">
<ul class="nav-main">
{% for item in menuProducts.items %}
<li class="nav-main-item {{ item.classes|join(' ') }}">
{% set term = Term(item.object_id) %}
<div class="submenu__image"></div>
<a class="dd_menu_a" href="{{ item.link }}">{{ item.title }}
<i class="fa fa-angle-right arrow_icon"></i>
</a>
{% if item.children %}
<div class="nav-drop">
<ul>
{% for child in item.children %}
<li class="nav-drop-item">
<a href="{{ child.link }}">{{ child.title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
我的CSS代码代码是:
.nav-drop {
position: absolute;
top: 0;
left: 100%;
width: 100%;
background: #fff;
display: none;
text-align: center;
padding: 20px 0 20px 0;
background: #fff;
}
.dd_menu ul li a.dd_menu_a.active + .nav-drop{
display: block;
}
我的 javascript 代码是:
var dd_menu_a = document.querySelectorAll(".dd_menu_a");
dd_menu_a.forEach(function(dd_menu_item){
dd_menu_item.addEventListener("mouseover", function(){
dd_menu_a.forEach(function(dd_menu_item){
jQuery(".nav-main__brands__items").removeClass("active");
dd_menu_item.classList.remove("active");
})
dd_menu_item.classList.add("active");
})
})
解决方案
即使我不完全确定您在这里尝试完成什么,但对于您显示的屏幕截图中的子菜单,使用::after伪元素更加方便和明智。所以我建议检查一下
推荐阅读
- java-8 - 我们在 Java 8 中有 setCurrentMillisFixed 吗?
- java - 在 Android 中从 JSON 文件生成菜单项
- vba - 如何自动调整扩展行的大小?
- android - 如何使用retrofit2将json数据发布到android中的服务器?
- java - java中的引导初始化程序错误是什么
- reactjs - React 应用程序无法在 Internet Explorer 上为 prod 环境工作
- android - 在android的Webview中加载sdcard pdf文件
- mysql - MySQL条件取决于列值
- eclipse - 无法在 Eclipse Oxygen 中配置 Oracle weblogic 10gR3 服务器
- javascript - 拆分登陆页面(HTML、CSS、JavaScript)