利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动

 利用mui开发APP

之侧滑菜单主内容滚动问题

   MUI作为开发者常用的框架之一,其号称最接近原生APP体验的高性能前端框架。因此利用mui开发移动APP,可以为开发者提供很大的便利和接近原生的体验。但是,在实现一些复杂功能的过程中,难免遇到一些小问题。博主将以自己在项目开发中的一些的经验,陆续对mui使用中容易遇到的小问题,予以解答和分享,希望能帮到更多的开发者朋友。

  最近,博主在项目开发过程中遇到这样一个问题,即利用mui侧滑菜单模块,实现APP的侧滑菜单效果时,侧滑菜单加入以后,将影响自身及主页面内容的上下滑动。

相信这个问题在用mui开发APP时遇到的人不在少数,已解决,敬请参考。

   

1、首先在 class="mui-scroll-wrapper" 的元素上添加ID:

代码如下:

<!-- 侧滑导航根容器 -->
<div class="mui-off-canvas-wrap mui-draggable">
  <!-- 菜单容器 -->
  <aside class="mui-off-canvas-left">
    <div id="offCanvasSideScroll" class="mui-scroll-wrapper">
      <div class="mui-scroll">
        <!-- 菜单具体展示内容 -->
        ...
      </div>
    </div>
  </aside>
  <!-- 主页面容器 -->
  <div class="mui-inner-wrap">
    <!-- 主页面标题 -->
    <header class="mui-bar mui-bar-nav">
      <a class="mui-icon mui-action-menu mui-icon-bars mui-pull-left"></a>
      <h1 class="mui-title">标题</h1>
    </header>
    <div id="offCanvasContentScroll" class="mui-content mui-scroll-wrapper">
      <div class="mui-scroll">
        <!-- 主界面具体展示内容 -->
        ...
      </div>
    </div>
  </div>
</div>  

从上面例子可以看出,侧滑菜单和主体部分都添加了ID。

分别为:offCanvasSideScroll、offCanvasContentScroll。

2、其次在JS里面激活:

注意!这是至关重要的一步操作:

mui(‘#offCanvasSideScroll‘).scroll();
mui(‘#offCanvasContentScroll‘).scroll();  

经过JS的初始化以后,现在超过高度即可进行下滑了。注意是超过高度!就像浏览器一样,如果“ 主界面具体展示内容”没有超出范围,是没有下滑功能的。

完整代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title></title>
    <script src="http://dev.dcloud.net.cn/mui/dist/js/mui.min.js"></script>
    <link href="http://dev.dcloud.net.cn/mui/dist/css/mui.min.css" rel="stylesheet"/>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <style type="text/css">
        body{
            background-color: #000000;
        }
        .mui-off-canvas-wrap{
            max-width: 720px;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    <!-- 侧滑导航根容器 -->
    <div class="mui-off-canvas-wrap mui-draggable">
      <!-- 菜单容器 -->
      <aside class="mui-off-canvas-left">
        <div id="offCanvasSideScroll" class="mui-scroll-wrapper">
          <div class="mui-scroll">
            <!-- 菜单具体展示内容 -->
            <div style="height:1000px">  

            </div>
          </div>
        </div>
      </aside>
      <!-- 主页面容器 -->
      <div class="mui-inner-wrap">
        <!-- 主页面标题 -->
        <header class="mui-bar mui-bar-nav">
          <a id="left-menu" class="mui-icon mui-action-menu mui-icon-bars mui-pull-left"></a>
          <h1 class="mui-title">标题</h1>
        </header>
        <div id="offCanvasContentScroll" class="mui-content mui-scroll-wrapper">
          <div class="mui-scroll">
            <!-- 主界面具体展示内容 -->
            <div style="height:1000px">  

            </div>
          </div>
        </div>
      </div>
    </div>  

    <script type="text/javascript" charset="utf-8">
        $("#left-menu").on(‘tap‘, function (event) {
            mui(‘.mui-off-canvas-wrap‘).offCanvas(‘show‘);
        });  

        window.onload = function(){
            mui(‘#offCanvasSideScroll‘).scroll();
            mui(‘#offCanvasContentScroll‘).scroll();
        }
    </script>
</body>
</html>  

至此,mui侧滑菜单主页面内容的问题已解决,更多详细内容,敬请关注 Q的前端世界。也可在评论区提出你的遇到的困难或更好建议。

 

本期分享就到这里,觉得内容不错的小伙伴请点推荐,欢迎大家在评论下方评论区与博主互动,谢谢大家!

时间: 2024-08-05 19:35:33

利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动的相关文章

mui开发app之js将base64转图片文件

之前我已经做过一个利用cropper裁剪并且制作头像的功能.如何在mui app中实现相册或相机获取图片后裁剪做头像请看另一篇博客:mui开发app之cropper裁剪后上传头像的实现 但是当时裁剪后图片是保存为base64格式的,这是h5 canvas建议使用的图片传输方式. 很多时候很多api,比如mui中第三方插件map中有一个setIcon传入的必须是本地的图片文件地址,目前的第三方地图系统任然不支持base64的标注图,所以折腾了一晚之后终于在native.js中找到了将base64转

HBuilder开发App教程09-侧滑菜单

侧滑菜单 功能 上节讲到了列表页,这节讲一个比较常用的功能,侧滑菜单, 在本app中策划菜单用来记录已经完成的事项. 实现方式 用Hbuilder实现类似侧滑菜单这样原生app功能,一般有两种实现方式,详见:这里. 一是webview实现,二是div模拟实现, 两者的区别是div实现简答,但是偶尔效果不是很好, 而webview实现稍微复杂,页面传值也复杂,但是效果好点,一般推荐webview实现方式. index.html 代码 index.js中需要添加如下代码, var main = nu

利用开源SlidingMenu框架实现左右侧滑菜单的功能

package com.loaderman.slidingmenudemo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.Windo

mui开发app之联网应用传输数据

手机的app分为,在线和单机,在线就是类似于C/S模式,能与服务器与他人共享数据的程序,单机就是在没有网络下可以玩转的app. 目前互联网盛行的时代,99%的程序都是联网环境下工作的.那么如何开发本地app并且能通过网络将数据上传至服务器共享成为了在线app的开发重点. 首先请理解B/S的工作模式,在web程序中,我们只是向http服务器请求了地址,服务器(无论是apache,tomcat,nginx这些都是实现了http socket的程序)返回给我们html文件,浏览器呢,对html进行解释

mui开发app之webview是什么

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器. 当我们使用mui开发html5+app的时候,其实是调用了设备的webkit内核,即对浏览器的调用,浏览器再实现了设备接口对设备进行操作,目前实现的html5+可以调用摄像,录音,gps等这些更底层的东西,当然是针对移动设备浏览器内核而言的 我们甚至能使用iostream,关于文件流的应用,是实现在浏览器提供的沙盒目录中, 目前5+为了保证应用的安全,plus.io API限制了仅可访问应用沙盒的4个公开目录_www(只读)._

mui开发app之plusReady

在mui中使用$.plusReady()或者mui.plusReady()使用 类似于jquery中的$(document).ready(); 第一,啥是plusReady? 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中. 第二,啥是html5+,和html5有什么区别 所谓的html4.0标准我们就不去讨论了,这是早

IOS开发UI篇--一个侧滑菜单SlidingMenu

一.简介 侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app.侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ.网易邮箱.知乎等等.iOS官方并没有提供类似于侧滑栏之类的组件,所以我们需要自己写一个侧滑栏控件,为了不要重复造轮子,我在github上找到了一个使用简单方便,新手容易入手的侧滑菜单控件,地址:https://github.com/John-Lluch/SWRevealViewController/t

mui开发app之cropper裁剪后上传头像的实现

在大多数app项目中,都需要对用户头像的上传,之前做web开发的时候,我主要是通过input type=file的标签实现的,上传后,使用php对图片进行裁剪,这种方式比较传统简单. 此次app开发中我需要做到用户选择本地相册或者进行拍照,对照片进行裁剪,最后更新本地头像和服务器端的图片 我将要结合mui,cropper,jquery开发 实现思路: 1.用户点击头像,打开actionsheet 2.选择图片或者拍照后返回的图片绝对地址传入单独的裁剪页面,跳转到裁剪页面 3.裁剪页面裁剪后选择确

iOS开发系列之常用自定义控件开发集—自定义UITableViewCell侧滑菜单控件开发

在很多app中就有UITableViewCell左滑出现菜单如系统删除按钮,但是系统的只能有一个,有很多需求需要个性化不仅可以放文字还可以放按钮修改背景色创建多个菜单项,那么系统提供的肯定不适合,所以我们需要自己手工打造. 直接上代码如下: WHC_MenuCell.h 头文件如下: // // WHC_MenuCell.m // WHC_MenuCell // // Created by 吴海超 on 15/4/3. // Copyright (c) 2015年 Sinosun Technol