(如有错敬请指点,以下是我工作中遇到并且解决的问题)
效果图:
点击各个菜单显示/隐藏,以及点击灰色部分隐藏。
比如点击了第一个菜单,然后点击第二个菜单,第一个菜单会隐藏,再显示第二个菜单,不会叠加。
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还提供了链式调用,允许我们连续执行多个操作。 要实现树形菜单,我们可以创建一个HTML结构,通常包含`<ul>`和`<li>`元素,其中`<li>`元素用于表示每个菜单项,`<ul>`元素则作为子菜单的容器。初始状态下,子...
jQuery作为一个强大的JavaScript库,提供了丰富的功能来创建交互式、动态的多级导航菜单,包括滑动效果。下面我们将深入探讨如何使用jQuery实现这种效果。 1. **HTML结构**: 多级导航菜单通常由`<ul>`和`<li>`...
在这篇文章中,我们主要学习了如何利用jQuery技术来实现网页菜单的显示和隐藏功能。通过实例演示的方式,作者详细分析了如何基于jQuery事件响应机制以及CSS样式动态地改变菜单的显示状态。下面,我们将详细梳理本文...
然后,使用jQuery监听鼠标悬停事件,当鼠标进入`<li>`元素时显示子菜单,离开时隐藏。这里我们使用`.hover()`方法和`.slideToggle()`动画效果: ```javascript $(document).ready(function() { $('#horizontalMenu...
jQuery是一个轻量级、功能强大的JavaScript库,它极大地简化了JavaScript编程,使得实现动态交互效果如下拉菜单变得简单易行。本篇文章将详细探讨如何使用jQuery来创建一个功能完备的下拉菜单。 首先,我们需要了解...
jQuery,作为一个轻量级的JavaScript库,因其简洁的API和丰富的功能,常被用来实现动态效果,包括下拉菜单的创建。本教程将详细讲解如何使用jQuery来实现一个下拉菜单,以及相关的注意事项。 首先,我们需要了解...
当鼠标移动到特定元素(如图片、文字)上时,jQuery会监听到hover事件,并执行预设的函数来改变目标隐藏层的CSS属性,例如将其display属性从none切换为block,从而实现显示;鼠标离开时,再将display属性恢复为none...
整个实例中,`animate`方法被用来创建平滑的动态效果,而`.is(":animated")`方法被用来检查元素是否正在执行动画,以避免多个动画同时发生。此外,隐藏`div`的操作使用`hide`方法完成,这里的`1000`参数同样代表了...
本主题将深入探讨如何使用jQuery来实现二级菜单,这是一种常见的网页交互效果,能帮助用户更高效地探索网站内容。 jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理以及动画效果。在实现二...
这个例子展示了如何使用jQuery创建一个简单的右键菜单,当用户在指定的`#content`元素上右键点击时,会显示一个包含三个菜单项的菜单。当用户点击菜单项时,会弹出提示框显示所选内容,而当用户在页面其他地方点击时...
以下是一个简单的示例,展示了如何在鼠标悬停时显示和隐藏子菜单: ```javascript $(document).ready(function() { // 当鼠标进入主菜单项时,显示子菜单 $(".parent").hover(function() { $(this).children("....
联动菜单通常由多个级别组成,每个级别中的选项根据上一级的选择动态改变。例如,一级菜单可能包含“产品”、“服务”等大类别,点击“产品”后,二级菜单会显示“手机”、“电脑”等子类别,进一步选择“手机”,三...
jQuery的`.hide()`和`.show()`方法可以快速实现元素的隐藏和显示。若需添加过渡效果,可以使用`.fadeIn()`和`.fadeOut()`,它们会渐显或渐隐元素。如果想在点击某一元素时切换另一个元素的显示状态,`.toggle()`又是...
二级菜单通常包含一个主菜单和多个子菜单项。主菜单项通常在鼠标悬停时显示其对应的子菜单。以下是一个简单的HTML示例: ```html <li><a href="#">菜单1 <li><a href="#">子菜单1-1</a></li> <li><a href="#...
- 使用事件委托提高性能,例如,绑定事件到父元素而非每个菜单项,以减少内存占用。 - 考虑使用现代JavaScript特性(如ES6语法)和模块化(如Webpack或Rollup),提升代码质量和维护性。 在提供的压缩包文件`...
例如,当用户点击一个菜单项时,它的子菜单应该被显示或隐藏。 4. **递归函数**:为了实现无限级别的多级菜单,通常会使用递归函数。递归允许我们处理具有自我相似结构的数据,例如树形结构的菜单。函数会检查每个...
在这个项目中,jQuery被用来实现悬浮层菜单的动态效果,如平滑地显示和隐藏菜单,以及可能的动画过渡。 【悬浮导航】与悬浮菜单类似,是指在页面滚动时始终显示在屏幕某一位置的导航元素。它可能是整个导航栏,也...
例如,当用户鼠标悬停在一个菜单项上时,可以展开子菜单;移开鼠标后,子菜单自动收起。此外,还可以使用`.toggle()`方法实现开关效果,让用户通过单击来切换菜单的显示与隐藏。 **Ajax局部刷新**:Ajax(异步...
2. **CSS样式**:使用CSS对菜单进行基本的样式设置,例如,隐藏二级菜单(默认不显示)。 ```css .menu ul { display: none; } ``` 3. **jQuery交互**:添加jQuery代码,监听点击事件,当用户点击一级菜单时,...
3. **过渡(Transitions)**:通过`transition`属性,可以平滑地改变一个或多个CSS属性,增加菜单项的动态效果,如悬停时颜色的变化。 4. **伪类选择器(Pseudo-classes)**:如`:hover`,可应用于菜单项,当鼠标...