前言

最近公司的项目转向使用Hbuilder开发移动端项目,其中想要通过在顶部标题栏加入弹出菜单的方式,来定位长列表的位置,如图所示。

问题

Mui的功能貌似还不是很完善,在使用这个弹出菜单的时候,发现了一些很尴尬的问题:

  1. 目录的跳转我是通过锚点实现的,但是在跳转之前,这个菜单一切正常,一旦触发跳转,那么整个菜单就会卡住无法收回,但是跳转功能正常。

  2. 由于我的页面比较长,因而出现不在顶部使用弹出菜单时,弹出菜单位置像是不正确的情况,如图所示。

解决办法

1.问题一的解决方案

对于问题一,我的解决方案是手动关闭弹出菜单,这里通过控制台查找出生成的mask的class .mui-backdrop以及弹出菜单项的class .mui-table-view-cell代码如下:

//点击mask的触发事件
$(".mui-backdrop").click(function() {
$("#topPopover").hide();
$(".mui-backdrop").hide();
});
//点击菜单项的触发事件
$(".mui-table-view-cell").click(function() {
$("#topPopover").hide();
$(".mui-backdrop").hide();
});
虽然方法比较粗暴,但是可以解决这个问题,有更好的解决方案的希望能够指正。

2.问题二的解决方案

对于问题二,我的解决方案是,将它定死~。 我通过使用js写入css样式,将其设为`absolute`即可解决。代码如下:
    var uip = document.getElementById("topPopover"); //topPopover是popover 的最外层div
uip.style.position = "absolute";

代码

主页面代码如下所示:

    <!--头部-->
<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>

解决以上两个问题的代码:

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的博客 ,初来实习,多请帮助~

解决Mui中popover 顶部弹出菜单弹出位置不准确以及无法收回的问题的更多相关文章

  1. MUI学习03-弹出菜单(弹出列表)

    弹出菜单HTML代码如下: <div class="mui-content"> <!--弹出列表-----------start--> <button ...

  2. 关于mui 中popover与下拉刷新冲突问题

    最近用mui做app混合式开发时,作为一个后端开发,高前端确实有点吃了,期间遇到的问题肯定也不少.这两天app做更新,为了装逼,将更新的提示搞得好看些,用到了mui中的popover,结果把自己整死了 ...

  3. mui弹出菜单

    详细操作见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  4. vc++ 如何添加右键弹出菜单

    一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图标 2.于菜单编辑器内编辑菜单 四.添加代码(红色部分) void CCM ...

  5. (一)自定义ViewGroup绘制出菜单

    从网上学习了hyman大神的卫星菜单实现,自己特意亲自又写了一编代码,对自定义ViewGroup的理解又深入了一点.我坚信只有自己写出来的知识才会有更加好的的掌握.因此也在自己的博客中将这个卫星菜单的 ...

  6. Mui --- 弹出菜单

    mui框架内置了弹出菜单插件,弹出菜单显示内容不限,但必须包裹在一个含.mui-popover类的div中,如下即为一个弹出菜单内容: <div id="popover" c ...

  7. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题

    如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 在android中有时候可能要实现一个底部弹 ...

  8. iOS_21团购_顶部菜单和弹出菜单联动

    最后效果图: 各控件关系图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize ...

  9. bootstrap中popover.js(弹出框)使用总结+案例

    bootstrap中popover.js(弹出框)使用总结+案例 *转载请注明出处: 作者:willingtolove: http://www.cnblogs.com/willingtolove/p/ ...

随机推荐

  1. Qt:QCustomPlot使用教程(三)——用户交互

    0.说明 本节翻译总结自:Qt Plotting Widget QCustomPlot - User Interactions 本节内容是使用QCustomPlot实现绘图和用户交互功能. 本文代码中 ...

  2. Chapter03 Java变量

    Chapter03 变量 目录 Chapter03 变量 3.1 为什么需要变量 3.1.1 一个程序就是一个世界 3.1.2 变量是程序的基本组成单位 3.1.3 简单原理图 3.2 变(变化)量( ...

  3. JZ-053-表示数值的字符串

    表示数值的字符串 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123", ...

  4. cobbler check执行报错

    httpd does not appear to be running and proxying cobbler, or SELinux is in the way. 当执行cobbler check ...

  5. 微信小程序 实现图片上传并展示到前端(多文件)并实现表单提交验证

    链接: https://blog.csdn.net/guanj0623/article/details/121595884?spm=1001.2014.3001.5501 https://blog.c ...

  6. 10、mysql的调优

    mysql的调优 调优的最终目的:节省系统资源.提高响应速度下面从6个维度对mysql进行优化. 第一步:对服务器的参数进行调优 通过show profile命令分析,如果sql语句在执行过程中等待时 ...

  7. hadoop-SSH免密登录配置

    一:配置基础环境 一.修改主机名 修改 master 机器主机名 [root@server ~]# hostnamectl set-hostname master-wzg [root@server ~ ...

  8. 【面经】MyBatis常见面试问题

    1.什么是 MyBatis? 答:MyBatis 是一个可以自定义 SQL.存储过程和高级映射的持久层框架. 2.讲下 MyBatis 的缓存 答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓 ...

  9. Linux项目部署 jdk tomcat 安装配置 linux下 failed connect to localhost:8080;Connection refused

         ONBOOT=yes 5.安装wget (1)安装 yum -y install wget (2) 查看版本  wget --version或 wget -V 一.安装jdk 配置 (1)安 ...

  10. python获取本地时间,时间戳与日期格式相互转换

    附上代码与运行结果截图: import time # 获取当前时间 now = time.localtime() # 格式化日期 now_ = time.strftime('%Y-%m-%d %H:% ...