最近公司的項目轉向使用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