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库的介绍及对比
Sep 29 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
Element图表初始大小及窗口自适应实现
Jul 10 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 24 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来实现网络服务
2009/09/15 PHP
PHP 获取目录下的图片并随机显示的代码
2009/12/28 PHP
php解析url的三个示例
2014/01/20 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
浅谈关于iview表单验证的问题
2018/09/29 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
python每次处理固定个数的字符的方法总结
2013/01/29 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
python输入多行字符串的方法总结
2019/07/02 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
单身旅行者的单身假期:Just You
2018/04/08 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
付款委托书范本
2014/04/04 职场文书
2015年除四害工作总结
2015/07/23 职场文书
Python List remove()实例用法详解
2021/08/02 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers