• 解决Mui中popover 顶部弹出菜单弹出位置不准确以及无法收回的问题


    前言

    最近公司的项目转向使用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的博客 ,初来实习,多请帮助~

  • 相关阅读:
    poj 2418 Hardwood Species
    hdu 3791 二叉搜索树
    九度oj 1544 数字序列区间最小值
    九度oj 1525 子串逆序打印
    九度oj 1530 最长不重复子串
    九度oj 1523 从上往下打印二叉树
    P1190 接水问题
    P1179 数字统计
    P1083 借教室
    P1079 Vigenère 密码
  • 原文地址:https://www.cnblogs.com/10manongit/p/12920513.html
Copyright © 2020-2023  润新知