在类更改时触发子列表的可见性
trigger visibility of sublist on class change
在过去的两天里,我一直在努力实现这一点,但我对javascript还很陌生,所以可能我只是没有看到什么。
我正在尝试创建一个Sidenavigation,它突出显示您所在的当前部分http://trevordavis.net/blog/jquery-one-page-navigation-plugin/
但我正在处理子项,我想在当前部分激活后立即触发此子项的可见性。因此,如果包含的列表项具有.current类,并且子列表的列表项之一具有.current.类,则ul将是可见的
我发现,我可能需要触发一个关于类更改的事件。我尝试过以下方法,但尚未奏效。
标记:
<ul id="nav">
<li class="current"><a href="#section-1">Section 1</a></li>
<li><a href="#section-2">Section 2</a></li>
<li class="parent"><a href="#section-3">Section 3</a>
<ul class="sublist">
<li><a href="#subsection-1">Subsection 1</a></li>
<li><a href="#subsection-2">Subsection 2</a></li>
<li><a href="#subsection-3">Subsection 3</a></li>
</ul>
</li>
</ul>
对于jquery,我尝试过这个:
$('#nav').on('event', function(){
$('.parent').addClass('current').trigger('visibility');
});
$('.parent').on('visibility', function(){
$('.parent .sublist').addClass('visible');
});
我主要想做的是Bootrap在其文档中所做的事情。向下滚动时,您可以看到Glyphicons,只要到达此部分,子项就会弹出(可用的glyphs、如何使用、示例)http://getbootstrap.com/components/
SASS迄今应用于导航:
.overview{
transition: .3s all;
ul{
margin-left: 10px;
ul{
max-height: 0;
transition: max-height 1s ease-out;
overflow: hidden;
}
}
}
.current{
> a{
font-weight: $bold;
}
ul{
max-height: 9999px !important;
transition: max-height 1s ease-out;
}
}
如果父列表设置为当前,我可以显示子列表,但一旦子列表为当前,子列表就会被隐藏,所以我想,我需要一些javascript
我现在看到了:)
你可以做的(可能有多种方法,但我会做的)是创建一个函数,如果类接近窗口顶部,则在滚动时进行检查,如果是,则在导航栏中的相关项目中添加一个类。
在没有插件的情况下应该相对简单,大致如下:
var checkSide = function(){
$('.container p').each(function(){
var item = $(this).offset().top,
$window = $(window),
navItem = $('#nav a[data-id="'+$(this).data('id')+'"]');
if ($window.scrollTop() >= item) {
if (!navItem.hasClass('current')) {
$('#nav .current').removeClass('current');
navItem.addClass('current');
}
}
});
};
$(window).scroll(function(){
checkSide();
});
请参阅http://codepen.io/jhealey5/pen/GjJFI-应该能够根据您的需要进行调整。
假设我理解正确:)
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- jQuery css可见性在load方法中不起作用
- 页面可见性API实际上支持操作系统屏幕锁定吗
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- JavaScript可见性不起作用('隐藏'起作用,'可见'不起作用)
- 从内部回调的可见性
- Openlayers 3为了可见性而绑定到Vector层的复选框没有任何作用
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 如何禁用mouseout可见性=“;隐藏的“;对小于768px的介质的影响
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- 将元素的可见性绑定到另一个元素
- 使用 Javascript 将 HTML 页面中的默认可见性从可见更改为隐藏
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 在 jQuery 手风琴样式菜单中切换子项可见性
- CSS 中定义的可见性值未显示在 Javascript 中
- jquery切换可见性
- 如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
- 在类更改时触发子列表的可见性
- Javascript控件,如Google+可见性下拉列表
- 如何在列表项悬停时切换类的可见性