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 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
jQuery写的日历(包括日历的样式及功能)
Apr 23 Javascript
深入理解JavaScript高级之词法作用域和作用域链
Dec 10 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
JS实现的论坛Ajax打分效果完整实例
Oct 31 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
JS中关于正则的巧妙操作
Aug 31 Javascript
微信小程序调用摄像头隐藏式拍照功能
Aug 22 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 20 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将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
javascript每日必学之封装
2016/02/23 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Zabbix实现微信报警功能
2016/10/09 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
Python定时器线程池原理详解
2020/02/26 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
刘胡兰的英雄事迹材料
2014/02/11 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
英语专业求职信
2014/07/08 职场文书
人事专员岗位职责
2015/02/03 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
婚礼家长致辞
2015/07/27 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
八年级作文之感恩
2019/11/22 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
opencv检测动态物体的实现
2021/07/21 Python