slideToggle+slideup实现手机端折叠菜单效果


Posted in Javascript onMay 25, 2017

折叠菜单的效果,网上有很多的插件,比如bootstrap的 Collapse ,很好用也很简单,但是如果你使用的不是bootstrap框架,就会造成很多不必要的麻烦,比如默认样式被修改,代码冗余等等,一般网上也有很多基于jQuery的插件,但是也都过于繁琐,今天我就给大家说下,使用jQuery自带的函数,实现这种效果,话不多少,直接上代码:

HTML部分:

<div class="box">
  <!-- 内容-->
  <ul class="inner">
    <li class="inner_title">绿色校园<span></span></li>
    <ol class="inner_style">
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
    </ol>
    <li class="inner_title">绿色校园<span></span></li>
    <ol class="inner_style">
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
    </ol>
    <li class="inner_title">绿色校园<span></span></li>
    <ol class="inner_style">
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
      <li>篮球场</li>
    </ol>
  </ul>
</div>

CSS部分:

<style>
  body{
    background: #dddddd;
  }
  .inner{
    background: #fff;
    width: 100%;
    overflow: hidden;
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .inner .inner_title{
    background-color: #fff;
    width: 100%;
    padding: 0 2.5%;
    border-bottom: 1px solid #efefef;
    color: #343434;
    height: 40px;
    line-height: 40px;
    font-size: 16px;
    position: relative;
  }
  .inner .inner_title span{
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    margin-top: -10px;
    right: 6%;
    background: url("images/arow_left.png") no-repeat center;
  }
  .inner .inner_title.active{
    color: #4db780;
  }
  .inner .inner_title.active span{
    background: url("images/arow_down.png") no-repeat center;
  }
  /*弹出的二级分类处理*/
  .inner .inner_style{
    margin: 0;
    list-style: none;
    width: 100%;
    background-color: #efefef;
    overflow: hidden;
    padding: 15px 3%;
  }
  .inner .inner_style li{
    float: left;
    color: #333;
    font-size: 14px;
    width: 21%;
    text-align: center;
    line-height: 30px;
    margin-right: 5%;
  }
</style>

js部分(记得引入jQuery):

<script>
  /**处理折叠效果**/
  (function ($) {
    $.fn.Fold = function (options) {
      //默认参数设置
      var settings = {
        speed: 300 //折叠速度(值越大越慢)
      }
      //不为空则合并参数
      if (options)
        $.extend(settings, options);

      //遵循链式原则
      return this.each(function () {
        //为每个li元素绑定点击事件
        $("> li", this).each(function () {
          $(this).bind("click", function () {
            //单击之前先判断当前菜单是否折叠
            if($(this).hasClass('active')){//折叠状态
              $(".inner ol").slideUp('500');//使用slideup()折叠其他选项
              $(this).removeClass('active');//移除选中样式
            }else{//打开状态
              $(this).siblings('li').removeClass('active');
              $(".inner ol").slideUp('500');//使用slideup()折叠其他选项
              $(this).addClass('active')//添加选中样式
              $(this).next("ol").slideToggle(settings.speed);
            }
          });
        });
        //默认折叠
        $("> ol", this).hide();
      });
    }
  })(jQuery);
  $(".inner").Fold();//调用
</script>

效果如下:

slideToggle+slideup实现手机端折叠菜单效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
javascript的propertyIsEnumerable()方法使用介绍
Apr 09 Javascript
js中substring和substr的定义和用法
May 05 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
Jul 01 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
记一次webapck4 配置文件无效的解决历程
Sep 19 Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
详解vue 图片上传功能
Apr 30 Javascript
微信小程序关键字变色实现代码实例
Dec 13 Javascript
Bootstrap实现的标签页内容切换显示效果示例
May 25 #Javascript
React-router中结合webpack实现按需加载实例
May 25 #Javascript
node.js操作mongodb简单示例分享
May 25 #Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 #Javascript
node.js操作mysql简单实例
May 25 #Javascript
基于vue实现swipe分页组件实例
May 25 #Javascript
Javascript 实现匿名递归的实例代码
May 25 #Javascript
You might like
php的计数器程序
2006/10/09 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP链表操作简单示例
2016/10/15 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
几行js代码实现自适应
2017/02/24 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
详解Vue之计算属性
2020/06/20 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python中黄金分割法实现方法
2015/05/06 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
服装采购员岗位职责
2014/03/15 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
2015年酒店工作总结
2015/04/28 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技