最近公司的项目转向使用Hbuilder开发移动端项目,其中想要经过在顶部标题栏加入弹出菜单的方式,来定位长列表的位置,如图所示。javascript
Mui的功能貌似还不是很完善,在使用这个弹出菜单的时候,发现了一些很尴尬的问题:css
目录的跳转我是经过锚点实现的,可是在跳转以前,这个菜单一切正常,一旦触发跳转,那么整个菜单就会卡住没法收回,可是跳转功能正常。html
因为个人页面比较长,于是出现不在顶部使用弹出菜单时,弹出菜单位置像是不正确的状况,如图所示。java
对于问题一,个人解决方案是手动关闭弹出菜单,这里经过控制台查找出生成的mask的class .mui-backdrop
以及弹出菜单项的class .mui-table-view-cell
代码以下:app
//点击mask的触发事件 $(".mui-backdrop").click(function() { $("#topPopover").hide(); $(".mui-backdrop").hide(); }); //点击菜单项的触发事件 $(".mui-table-view-cell").click(function() { $("#topPopover").hide(); $(".mui-backdrop").hide(); });
虽然方法比较粗暴,可是能够解决这个问题,有更好的解决方案的但愿可以指正。
对于问题二,个人解决方案是,将它定死~。 我经过使用js写入css样式,将其设为`absolute`便可解决。代码以下:
var uip = document.getElementById("topPopover"); //topPopover是popover 的最外层div uip.style.position = "absolute";
主页面代码以下所示:ide
<!--头部--> <div class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <a id="menu" class="mui-action-menu mui-icon mui-icon-bars mui-pull-right" href="#topPopover"></a> <h1 class="mui-title" id="cityResult" class="" type='button'>xxx</h1> </div> <div class="mui-content"> <!--体,省略--> </div> <!--右上角弹出菜单--> <div id="topPopover" class="mui-popover"> <div class="mui-popover-arrow"></div> <div class="mui-scroll-wrapper"> <div class="mui-scroll"> <ul class="mui-table-view"> <li class="mui-table-view-cell"> <a href="#c1">行政区划简介</a> </li> <li class="mui-table-view-cell"> <a href="#c2">扶贫开发基本状况</a> </li> <li class="mui-table-view-cell"> <a href="#c3">贫困户地域分布状况</a> </li> </ul> </div> </div> </div>
解决以上两个问题的代码:ui
function setPopOverMenu() { var uip = document.getElementById("topPopover"); uip.style.position = "absolute"; $(".mui-backdrop").click(function() { $("#topPopover").hide(); $(".mui-backdrop").hide(); }); $(".mui-table-view-cell").click(function() { $("#topPopover").hide(); $(".mui-backdrop").hide(); }); }
欢迎访问zhkmxx930的博客 ,初来实习,多请帮助~spa