`
hiuman
  • 浏览: 52287 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JQuery实现多个菜单的显示隐藏

阅读更多
(如有错敬请指点,以下是我工作中遇到并且解决的问题)

效果图:


点击各个菜单显示/隐藏,以及点击灰色部分隐藏。
比如点击了第一个菜单,然后点击第二个菜单,第一个菜单会隐藏,再显示第二个菜单,不会叠加。

html代码:

<div class="menu">
	<div class="menu_type">
		<span class="menu_title" onclick="showhide(1)">自助餐</span>
		<div class="type_pop_bg">
			<ul class="type_pop_left">
				<li class="active">全部分类</li>
				<li>电影</li>
				<li>美食</li>
				<li>电影</li>
				<li>美食</li>
				<li>摄影</li>
			</ul>
			<ul class="type_pop_right">
				<li class="active">全部</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
			</ul>
		</div>
	</div>
	<div class="menu_position">
		<span class="menu_title" onclick="showhide(2)">中山二三路</span>
		<div class="position_pop_bg">
			<ul class="position_pop_left">
				<li class="active">全部分类</li>
				<li>番禺区</li>
				<li>美食</li>
				<li>电影</li>
				<li>美食</li>
				<li>摄影</li>
			</ul>
			<ul class="position_pop_right">
				<li class="active">全部</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
				<li>经济型</li>
			</ul>
		</div>
	</div>
	<div class="menu_sort" style="border:none;">
		<span class="menu_title" onclick="showhide(3)">智能排序</span>
		<div class="sort_pop_bg">
			<ul class="sort_pop">
				<li class="active">智能排序</li>
				<li>好评优先</li>
				<li>离我最近</li>
				<li>人均最低</li>
			</ul>
		</div>
	</div>
</div>



CSS代码:
.menu{width:100%;height:20px;background:#fff;border-bottom:1px solid #ddd;overflow:hidden;padding:8px 0;}
.menu_type, .menu_position, .menu_sort{text-align:center;border-right:1px solid #ddd;width:33%;height:16px;line-height:16px;float:left;}
.menu_title{font-size:13px;}

.position_pop_bg, .type_pop_bg, .sort_pop_bg{display:none;position:fixed;top:37px;left:0;background:rgba(0,0,0,.5);width:100%;height:100%;}

.position_pop_left, .type_pop_left, .position_pop_right, .type_pop_right, .sort_pop{position:fixed;top:37px;text-align: left;}
.position_pop_left, .type_pop_left, .position_pop_right, .type_pop_right{height:150px;overflow:auto;}
.sort_pop{background:#ddd;width: 100%;}
.position_pop_left, .type_pop_left{background:#fff;left:0;width: 40%;}
.position_pop_right, .type_pop_right{background:#ddd;left:40%;width:60%;}

.position_pop_left li, .type_pop_left li, .position_pop_right li, .type_pop_right li, .sort_pop li{font-size:13px;background:transparent;line-height:26px;}
.position_pop_left li, .type_pop_left li{padding-left:20px;border-bottom:1px solid #ddd;}
.position_pop_right li, .type_pop_right li, .sort_pop li{padding-left:10px;}

.position_pop_left li.active, .type_pop_left li.active, .position_pop_right li.active, .type_pop_right li.active, .sort_pop li.active{color:#6AB494;}
.position_pop_right li.active, .type_pop_right li.active, .sort_pop li.active{background:#eee;}



JS代码:
function showhide(sth){
	var popbgs = ['.type_pop_bg','.position_pop_bg','.sort_pop_bg']
	var pop;
	for(var i=0;i<popbgs.length;i++){
		if(i==(sth-1)){
			continue;
		}else{
			$(popbgs[i]).css("display","none");
		}
	}
	if($(popbgs[sth-1]).css("display")=="none"){
		$(popbgs[sth-1]).css("display","block");
		$(popbgs[sth-1]).click(function(){
			$(popbgs[sth-1]).css('display','none');
		})
	}else{
		$(popbgs[sth-1]).css('display','none');
	}
}
  • 大小: 16 KB
分享到:
评论

相关推荐

    jQuery实现树形菜单

    jQuery还提供了链式调用,允许我们连续执行多个操作。 要实现树形菜单,我们可以创建一个HTML结构,通常包含`&lt;ul&gt;`和`&lt;li&gt;`元素,其中`&lt;li&gt;`元素用于表示每个菜单项,`&lt;ul&gt;`元素则作为子菜单的容器。初始状态下,子...

    jquery实现多级导航菜单

    jQuery作为一个强大的JavaScript库,提供了丰富的功能来创建交互式、动态的多级导航菜单,包括滑动效果。下面我们将深入探讨如何使用jQuery实现这种效果。 1. **HTML结构**: 多级导航菜单通常由`&lt;ul&gt;`和`&lt;li&gt;`...

    jQuery实现菜单的显示和隐藏功能示例

    在这篇文章中,我们主要学习了如何利用jQuery技术来实现网页菜单的显示和隐藏功能。通过实例演示的方式,作者详细分析了如何基于jQuery事件响应机制以及CSS样式动态地改变菜单的显示状态。下面,我们将详细梳理本文...

    jquery实现横向伸缩菜单导航

    然后,使用jQuery监听鼠标悬停事件,当鼠标进入`&lt;li&gt;`元素时显示子菜单,离开时隐藏。这里我们使用`.hover()`方法和`.slideToggle()`动画效果: ```javascript $(document).ready(function() { $('#horizontalMenu...

    jquery实现下拉菜单

    jQuery是一个轻量级、功能强大的JavaScript库,它极大地简化了JavaScript编程,使得实现动态交互效果如下拉菜单变得简单易行。本篇文章将详细探讨如何使用jQuery来创建一个功能完备的下拉菜单。 首先,我们需要了解...

    jQuery实现下拉菜单.

    jQuery,作为一个轻量级的JavaScript库,因其简洁的API和丰富的功能,常被用来实现动态效果,包括下拉菜单的创建。本教程将详细讲解如何使用jQuery来实现一个下拉菜单,以及相关的注意事项。 首先,我们需要了解...

    完美的鼠标放上去jquery显示隐藏层

    当鼠标移动到特定元素(如图片、文字)上时,jQuery会监听到hover事件,并执行预设的函数来改变目标隐藏层的CSS属性,例如将其display属性从none切换为block,从而实现显示;鼠标离开时,再将display属性恢复为none...

    jQuery实现的动态伸缩导航菜单实例

    整个实例中,`animate`方法被用来创建平滑的动态效果,而`.is(":animated")`方法被用来检查元素是否正在执行动画,以避免多个动画同时发生。此外,隐藏`div`的操作使用`hide`方法完成,这里的`1000`参数同样代表了...

    jquery实现二级菜单

    本主题将深入探讨如何使用jQuery来实现二级菜单,这是一种常见的网页交互效果,能帮助用户更高效地探索网站内容。 jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理以及动画效果。在实现二...

    jQuery实现右键菜单源码

    这个例子展示了如何使用jQuery创建一个简单的右键菜单,当用户在指定的`#content`元素上右键点击时,会显示一个包含三个菜单项的菜单。当用户点击菜单项时,会弹出提示框显示所选内容,而当用户在页面其他地方点击时...

    jquery实现的下拉菜单

    以下是一个简单的示例,展示了如何在鼠标悬停时显示和隐藏子菜单: ```javascript $(document).ready(function() { // 当鼠标进入主菜单项时,显示子菜单 $(".parent").hover(function() { $(this).children("....

    jquery实现多级联动菜单

    联动菜单通常由多个级别组成,每个级别中的选项根据上一级的选择动态改变。例如,一级菜单可能包含“产品”、“服务”等大类别,点击“产品”后,二级菜单会显示“手机”、“电脑”等子类别,进一步选择“手机”,三...

    jQuery实例(菜单、滚动、层隐藏等)

    jQuery的`.hide()`和`.show()`方法可以快速实现元素的隐藏和显示。若需添加过渡效果,可以使用`.fadeIn()`和`.fadeOut()`,它们会渐显或渐隐元素。如果想在点击某一元素时切换另一个元素的显示状态,`.toggle()`又是...

    jQuery实现精美二级菜单

    二级菜单通常包含一个主菜单和多个子菜单项。主菜单项通常在鼠标悬停时显示其对应的子菜单。以下是一个简单的HTML示例: ```html &lt;li&gt;&lt;a href="#"&gt;菜单1 &lt;li&gt;&lt;a href="#"&gt;子菜单1-1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="#...

    jquery竖直手风琴菜单收缩展示下拉菜单

    - 使用事件委托提高性能,例如,绑定事件到父元素而非每个菜单项,以减少内存占用。 - 考虑使用现代JavaScript特性(如ES6语法)和模块化(如Webpack或Rollup),提升代码质量和维护性。 在提供的压缩包文件`...

    jquery插件——多级菜单

    例如,当用户点击一个菜单项时,它的子菜单应该被显示或隐藏。 4. **递归函数**:为了实现无限级别的多级菜单,通常会使用递归函数。递归允许我们处理具有自我相似结构的数据,例如树形结构的菜单。函数会检查每个...

    jquery右侧悬浮层菜单.rar

    在这个项目中,jQuery被用来实现悬浮层菜单的动态效果,如平滑地显示和隐藏菜单,以及可能的动画过渡。 【悬浮导航】与悬浮菜单类似,是指在页面滚动时始终显示在屏幕某一位置的导航元素。它可能是整个导航栏,也...

    jquery菜单显示 ajax刷新

    例如,当用户鼠标悬停在一个菜单项上时,可以展开子菜单;移开鼠标后,子菜单自动收起。此外,还可以使用`.toggle()`方法实现开关效果,让用户通过单击来切换菜单的显示与隐藏。 **Ajax局部刷新**:Ajax(异步...

    jQuery多级折叠菜单

    2. **CSS样式**:使用CSS对菜单进行基本的样式设置,例如,隐藏二级菜单(默认不显示)。 ```css .menu ul { display: none; } ``` 3. **jQuery交互**:添加jQuery代码,监听点击事件,当用户点击一级菜单时,...

    使用CSS+jQuery实现的水平二级菜单

    3. **过渡(Transitions)**:通过`transition`属性,可以平滑地改变一个或多个CSS属性,增加菜单项的动态效果,如悬停时颜色的变化。 4. **伪类选择器(Pseudo-classes)**:如`:hover`,可应用于菜单项,当鼠标...

Global site tag (gtag.js) - Google Analytics