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 面向对象编程基础 多态
Aug 21 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 Javascript
javascript 鼠标拖动图标技术
Feb 07 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
jqueryUI里拖拽排序示例分析
Feb 26 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
php计算整个目录大小的方法
2015/06/19 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
js+css实现扇形导航效果
2020/08/18 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Python的缺点和劣势分析
2019/11/19 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
聘用意向书范本
2014/04/01 职场文书
股份合作协议书范本
2014/04/14 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
2015年采购工作总结
2015/04/10 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
MyBatis 动态SQL全面详解
2021/10/05 MySQL