【发布时间】:2015-12-18 17:07:44
【问题描述】:
我在导航栏中创建了 2 个相同的下拉菜单。指向主菜单时,自动显示子菜单。向下滚动时,子菜单的背景将自动变为白色。但它只影响第一个子菜单,第二个主菜单的子菜单不受影响。我正在调用同一类,但为什么 css 不适用于第二个子菜单?下面是我的示例代码。
/**
* cbpAnimatedHeader.js v1.0.0
* http://www.codrops.com
*
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*
* Copyright 2013, Codrops
* http://www.codrops.com
*/
var cbpAnimatedHeader = (function () {
var docElem = document.documentElement,
header = document.querySelector('.navbar-default'),
subheader = document.querySelector('.dropdown-menu'),
didScroll = false,
changeHeaderOn = 150;
function init() {
window.addEventListener('scroll', function (event) {
if (!didScroll) {
didScroll = true;
setTimeout(scrollPage, 250);
}
}, false);
}
function scrollPage() {
var sy = scrollY();
if (sy >= changeHeaderOn) {
classie.add(header, 'navbar-shrink');
classie.add(subheader, 'navbar-shrink');
} else {
classie.remove(header, 'navbar-shrink');
classie.remove(subheader, 'navbar-shrink');
}
didScroll = false;
}
function scrollY() {
return window.pageYOffset || docElem.scrollTop;
}
init();
})();
<link href="https://dl.dropboxusercontent.com/u/50282572/bootstrap.min.css" rel="stylesheet"/>
<link href="https://dl.dropboxusercontent.com/u/50282572/style.css" rel="stylesheet"/>
<body id="index" class="index-page" style="height:1000px;">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container" style="" id="">
<div class="collapse navbar-collapse" style="" id="bs-example-navbar-collapse-1">
<ul class="nav nav-justified">
<li class="hidden" id="">
<a href="#page-top" class="" target="" data-value=""></a>
</li>
<li class="dropdown" id="listory">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Menu 1
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li class=""><a href="index.php?page=story1" class="page-scroll" target="" data-value="">White Color When scroll</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Menu 2
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li class="" id=""><a href="logout.php" class="page-scroll" target="" data-value="">White Color When scroll</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div style="height:500px;background:blue;"></div>
<script src="http://demo.sc.chinaz.com/Files/DownLoad/moban/201511/moban810/js/jquery-2.1.1.js"></script>
<script src="http://demo.sc.chinaz.com/Files/DownLoad/moban/201511/moban810/js/bootstrap.min.js"></script>
<script src="http://demo.sc.chinaz.com/Files/DownLoad/moban/201511/moban810/js/classie.js"></script>
</body>
查看整页以查看导航菜单
【问题讨论】:
-
在你的代码 sn-p 它适用于两者
-
@Johannes,如果主菜单正常工作。当您指向第二个主菜单时,将显示子菜单。那么当你向下滚动页面时,子菜单的背景是透明的,应该和第一个子菜单一样,都是白色背景。
-
不在这里,真的!它在悬停时具有白色背景,看起来与第一个子菜单(悬停)完全相同。奇怪...(我在 Firefox 42 上,但在 Chrome 上也是一样,我刚刚检查过。)我想我不能在这里发布屏幕截图...
-
@Johannes,已添加屏幕截图。
-
我真的不能告诉你为什么,但它看起来不像这里 - 它看起来像你描述它应该的样子。嗯,神秘……
标签: javascript html css drop-down-menu