- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个显示三级菜单的菜单结构,但是当我点击不同的三级菜单打开或折叠菜单时,菜单无法正常工作。
示例 http://jsfiddle.net/Ed9nk/21/
父一有多级菜单
例子你按照这个顺序你会注意到问题
第 1 步:将鼠标悬停在父一上 > 单击子一第 2 步:点击 Child Two 或 Child Three 菜单并将鼠标悬停在 Grand Child x 菜单上,您会注意到绿色框改变了位置。
第 3 步:现在,如果您单击 Parent One
的 Child One
折叠此菜单,然后将鼠标悬停在 Grand Child xx of Child Two 或 Child Three 菜单上,您会注意到绿色框正确显示。
绿框不断改变位置,我希望它显示在 div 的顶部。我不确定是什么原因造成的
J查询代码
$('.dropdown .has-panel ul').hide(function () {
});
$('.dropdown .has-panel').css('display', 'none');
//$('.dropdown .has-panel').css('height','0px');
$('.dropdown .has-panel').parent().click(function () {
$('.dropdown .has-panel').css('display', 'block');
//$("ul", this).show("normal");
$("ul", this).toggle("normal");
});
用于将绿色框始终置于顶部的 CSS
ul.nav > li > .dropdown.has-panel li:nth-child(1) > .dropdown.has-panel .dd-panel {
margin-top: -10px;
background-color:green !important;
}
ul.nav > li > .dropdown.has-panel li:nth-child(2) > .dropdown.has-panel .dd-panel {
margin-top: -54px;
background-color:green !important;
}
ul.nav > li > .dropdown.has-panel li:nth-child(3) > .dropdown.has-panel .dd-panel {
margin-top: -154px;
background-color:green !important;
}
在这方面,我将不胜感激。
更新:
现在我找到了临时解决方法,我发现当随机单击菜单并将鼠标悬停在 3 级菜单上时,很难自动计算绿色框的 margin-top
位置。我指定的手动边距仅在第一次按顺序单击时才有效绿色框总是显示在容器 div 的顶部。但是当我关闭 Child One 或 Child Two 时,绿色框总是占用手动设置的 -ve 边距,并从顶部位置在菜单外显示绿色框。
我发现的解决方法是始终只保持 3 级菜单之一打开,这样边距就可以工作 ul.nav > li > .dropdown.has-panel li:nth-child(1 ) > .dropdown.has-panel .dd-panel
最佳答案
在这方面工作了很长时间......
您的 span
与菜单选项位于同一 div
中,因此它通常应该与菜单项出现在同一行,但在您的代码中却没有t... 为了让它出现在顶部,您将不得不使用负 margin
。
这部分导致绿框在每个 mouseenter
事件中增长...
删除:
var $this = $(this).find(".dropdown ul li");
var ulHeight = $this.parent().height();
var captionHeight = $(this).find('.media-caption').height();
var height = Math.max(ulHeight, captionHeight);
$this.closest('.dd-panel').height(height);
$this.parent().find(".dd-panel").css("height", height - 20 + "px");
您可以更改:
if ($(this).find(".dropdown").hasClass("has-panel")) {} else {
$(this).find(".dropdown").removeClass("dropdown-last");
}
收件人:
if (!$(this).find(".dropdown").hasClass("has-panel")) {
$(this).find(".dropdown").removeClass("dropdown-last");
}
在 .dropdown ul ul .dd-panel
中,更改:
top:-10px;
收件人:
top:0;
您现在可以手动更改 margin-top
并将负的 margin
分配给第二个和第三个 child ,使它们出现在顶部。
ul.nav > li > .dropdown.has-panel li:nth-child(1) > .dropdown.has-panel .dd-panel {
margin-top:-30px;
background-color:green !important;
}
ul.nav > li > .dropdown.has-panel li:nth-child(2) > .dropdown.has-panel .dd-panel {
margin-top:-120px;
background-color:green !important;
}
ul.nav > li > .dropdown.has-panel li:nth-child(3) > .dropdown.has-panel .dd-panel {
margin-top:-220px;
background-color:green !important;
}
根据您的需要更改margin-top
...
P.S:我在 fiddle 中做了一些代码清理,但我相信,我在这篇文章中涵盖了所有重要内容。
关于javascript - 可折叠菜单更改元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054906/
我正在尝试创建一个无序列表,其中每个 包含另一个无序列表。我想要触发子菜单向下滑动的列表项有类 mobile-collapse子菜单有类 mobile-drop-menu 。这是我的 jquery 代
我使用 PMD检查我的代码。在大多数情况下,它给了我非常有用的提示,但我无法弄清楚在以下情况下可以改进什么。 原始代码如下所示: if ((getSomething() != null && getS
需要一些 jquery/js/jsp 功能的帮助.. 我有一个可折叠的表格脚本: (function($){ $.fn.extend({ setupCollapstable: funct
我使用 CSS 和 Javascript 创建了一个 Accordion ,但我不知道如何在选择不同的 Accordion 后折叠打开的 Accordion 。我试过在 Javascript 中使用可
我使用 CSS 和 JS 编写了一个可折叠按钮,我想将一个按钮嵌套在另一个按钮中。 是否可以动态调整第一个/外部按钮的高度,以便在打开第二个/内部按钮时,第一个按钮的高度增加第二个按钮的高度? 这是我
我正在使用 jQuery 创建一个导航系统。我想要实现的是在页面加载时显示父元素并隐藏子元素。我做得非常简单。 然而,当我在其他父元素之间切换时,我希望能够隐藏之前的子元素,以便我只能打开一个 一次。
我正在尝试匹配这个设计 点击卡片应该展开 我不能用卡片包裹扩展 block ,因为扩展 block 基本上只有一行,我试着按照这个例子 flutter_catalog 我在谷歌上搜索了很多,但找不到我
我正在尝试切换 div 以使其可见/隐藏。我正在制作一个排行榜,我想打开它,但只能在单击时打开。 test fu
我正在使用 Materialize CSS 并使用可折叠的 Accordion 式元素 ( http://materializecss.com/collapsible.html )。 出于某种原因,当
我有一个递归 TreeView ,它从数据库中提取所有信息,并且想了解如何使其可折叠。我尝试使用 Jquery 和 Javascript,但都没有任何效果。不确定是我的错误还是其他原因。 这是我的基本
我收到异常“可折叠 if 语句”。 通过以下代码中的 Sonar 。 if(getSomething().equals(getSomething()){ if(getsomehing.contai
我正在制作 Accordion 以在 Angular 应用程序中使用 javascript 制作可折叠的 div.. 为此,如果单击Parent One 或任何其他父名称上的按钮未打开它.. HTML
我正在将 Ant Design 与 React 一起使用。 Ant Design 有一个菜单组件:https://ant.design/components/menu/ 是否可以使菜单不可折叠/展开?
我想展示这个可折叠 Accordion 的第一个元素。我在互联网上做了一些研究,但徒劳无功 Aller au dossier personnel
考虑以下 foldMap 的签名 foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m 这与“绑定(bind)”非常相似,只是交换了参数:
使用“fieldsets”,您可以通过指定 CSS 类“collapse”使其可折叠。如何对“内联”做同样的事情?谢谢! 最佳答案 在 Django 1.10+ 中: class MyModelInl
有人已经用 YUI dataTable 制作了如下示例的脚本吗? 示例: http://extjs.com/deploy/dev/examples/tree/column-tree.html http
好吧,有些事情很奇怪,我无法弄清楚。假设我有一些类别,每个类别都有一些项目,全部放入字典中。 import wx nyoom = {} nyoom['spiders'] = ['Yellow Sac'
我正在尝试实现一种可折叠的 StackLayout。每次用户单击按钮时,它都会展开或折叠堆栈布局以显示/隐藏更多详细信息。 我能够通过下面的代码实现更多/更少的效果,但它看起来不对而且效果也不是很好,
我的布局包含顶部的水平 recyclerView 和 viewPager。 ViewPager 在其每个选项卡中都有一个 recyclerView。 我想在用户滚动布局时折叠顶部水平回收器 View
我是一名优秀的程序员,十分优秀!