利用 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的前端世界。也可在评论区提出你的遇到的困难或更好建议。

 

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

 

posted @ 2017-05-31 02:08  pixel-matrix  阅读(6768)  评论(0编辑  收藏  举报