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 setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
判断浏览器的javascript版本的代码
Sep 03 Javascript
javascript操作JSON的要领总结
Dec 09 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 Javascript
js检测用户输入密码强度
Oct 22 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
vue 自动化路由实现代码
Sep 03 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 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来检测proxy
2006/10/09 PHP
php调用shell的方法
2014/11/05 PHP
Jquery读取URL参数小例子
2013/08/30 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
多版本Python共存的配置方法
2017/05/22 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
flask框架视图函数用法示例
2018/07/19 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python三引号输出方法
2019/02/27 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
中学生差生评语
2014/01/30 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
毕业寄语大全
2014/04/09 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
单位考核聘任报告
2015/03/02 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫