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 相关文章推荐
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
javascript 面向对象全新理练之数据的封装
Dec 03 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
webpack组织模块打包Library的原理及实现
Mar 10 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
vue中是怎样监听数组变化的
Oct 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
Session保存到数据库的php类分享
2011/10/24 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
Python开发常用的一些开源Package分享
2015/02/14 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python 中random模块的常用方法总结
2017/07/08 Python
python reduce 函数使用详解
2017/12/05 Python
Python3生成手写体数字方法
2018/01/30 Python
pandas通过loc生成新的列方法
2018/11/28 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
python opencv肤色检测的实现示例
2020/12/21 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
酒店经理职责
2014/01/30 职场文书
安全温馨提示语大全
2015/07/14 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL