我有一个位于页面顶部的菜单。 div的背景为黑色,不透明度为50%。当鼠标悬停在列表上时,它会触发一个下拉子菜单。子菜单由一个淡入淡出函数运行。我想扩展div的背景,当子菜单出现时,它会随子菜单向下滑动,我知道我可以给子菜单一个背景,但是我希望div的背景能够扩展,以便它填充页面,达到子菜单占用的数量,但是在你离开悬停后返回。
这是我的子菜单悬停功能。我在想可以添加一些东西来改变div的风格。
$('.nav li, .subTopMenu li').hover(
// When mouse enters the .navigation element
function () {
//Fade in the navigation submenu
$('ul', this).fadeIn(); // fadeIn will show the sub cat menu
},
// When mouse leaves the .navigation element
function () {
//Fade out the navigation submenu
$('ul', this).fadeOut(); // fadeOut will hide the sub cat menu
}
);
div和list就是这样的html;
<div class="topMenu">
<a href="#"><img src="images/logo-small.png"></a>
<ul class="subTopMenu">
<li class="noHover"><a href="#">Link1</a>
<ul>
<li><a href="#" id="navclick" data-iclick="tAbout">ABOUT US</a></li>
<li><a href="#" id="navclick" data-iclick="tHistory" data-bgsrc="images/history.jpg">HISTORY</a></li>
<li><a href="#">OUR BOARD</a></li>
<li><a href="#">CONTRIBUTE</a></li>
</ul>
</li>
<li class="noHover"><a href="#">Link2</a>
<ul>
<li><a href="#">SHOP</a></li>
<li><a href="#">EAT</a></li>
<li><a href="#">DRINK</a></li>
<li><a href="#">JOIN</a></li>
</ul>
</li>
<li class="noHover"><a href="#">Link3</a>
<ul>
<li><a href="#">MUSIC</a></li>
<li><a href="#">ART</a></li>
<li><a href="#">FESTIVALS</a></li>
<li><a href="#">LECTURES</a></li>
</ul>
</li>
<li class="noHover"><a href="#">Link4</a>
<ul>
<li><a href="#">WHEN & WHERE</a></li>
<li><a href="#">REGISTER</a></li>
<li><a href="#">VOLUNTEER</a></li>
<li><a href="#">SPONSOR</a></li>
<li><a href="#">GALLERY</a></li>
</ul>
</li>
</ul>
</div>
div的格式为css;
.topMenu
{
display:none;
top:0px;
position:relative;
padding:10px;
background-color:rgba(0,0,0,0.5);
text-align:center;
}
.topMenu li
{
display:inline;
position:relative;
text-align:center;
}
我在想这样的事情,使用jqueryUi效果调整div的大小,但它似乎并没有削减它。 div动画到高度,但它在两个高度之间来回传递。
$('.noHover').mouseover(
function () {
//Increase the size of the topMenu div
$('.topMenu').animate({height: '200'},'slow');
});
$('.subTopMenu').mouseout(
function(){
$('.topMenu').animate({height: '90'},'slow');
});
$('.nav li, .subTopMenu li').hover(
// When mouse enters the .navigation element
function () {
//Fade in the navigation submenu
$('ul', this).fadeIn(); // fadeIn will show the sub cat menu
},
// When mouse leaves the .navigation element
function () {
//Fade out the navigation submenu
$('ul', this).fadeOut(); // fadeOut will hide the sub cat menu
}
);
答案 0 :(得分:0)
我找到了一个解决方案,而不是我想要的解决方案,因为我希望有一个很好的缓和或动画幻灯片,但这可以解决问题
$('.noHover').mouseover(
function () {
var navht = $(this).attr('data-navht');
//Increase the size of the topMenu div
$('.topMenu').css('height', navht);
});
$('.subTopMenu').mouseout(
function(){
$('.topMenu').css("height", "90px");
});
我还添加了data-navht的属性,因此我可以根据子菜单中子项的总数设置高度,以便div扩展到底部。