3***@qq.com
3***@qq.com
  • 发布:2017-03-02 17:26
  • 更新:2017-10-18 15:34
  • 阅读:3543

选项卡切换页面时 不运行mui.ready()方法

分类:MUI

我在选项卡切换界面里面添加了个通讯录界面,通讯录界面里面需要使用mui.ready方法进行获取屏幕高度 ,在虚拟机上运行可以 ,但是打包下来在手机里面运行界面不显示出来。 后来使用手机连接电脑进行调试 一运行也不显示,但是讲通讯录界面同步下 手机上就显示了 。 我该怎么写?

2017-03-02 17:26 负责人:无 分享
已邀请:

最佳回复

Neil_HL

Neil_HL

出现这样的原因,应该是你在userlist页面频繁使用document.body.offsetHeight之类的方式获得页面高度,但是在一开始进入的是首页,其他几个页面也是加载出来的,但是不可见,高度为0;所以你点击通讯录,没反应,其实内容是在的,这是被你用overflow: hidden;隐藏起来了,你在通讯录刷新页面,由于其是可见的,高度不是0了,所以,出现:通讯录界面同步下 手机上就显示 这样的情况。
建议:不用js调整页面高度什么的,不需要隐藏超出部分,mui-group-list-bar部分使用position: fixed,line-height使用系统默认的值或者适当增加一点点,我试了一下,应该不会影响体验效果。

  • MS橘子小姐

    indexedlist.js 这里有还设置了mui-indexed-list-bar和mui-indexed-list-inner 的高度的嘛,也是根据list 的高度计算的。,,难道也不用js设置? 不设置inner 内容高度。就不能滚动呀。。

    2017-03-27 16:56

Neil_HL

Neil_HL

我把你caleLayout的方法注销了,userlist里的获取高度的js也注销了,加了
<style>
html,
body {
height: 100%;
overflow: auto;
}
.mui-group-list{
height: auto;
}
.mui-group-list-bar{
position: fixed;
}
</style>
附件为我改的你的代码,你试试

  • 3***@qq.com (作者)

    谢谢了 实现了 还是对js很不了解

    2017-03-03 15:39

BoredApe

BoredApe - 有问题就会有答案。

请上传应用截图 详细说明操作步骤

3***@qq.com

3***@qq.com (作者)

引用一进入为选项卡界面。 点击通讯录界面,结果如上传的图片所示


选项卡代码界面截图:

通讯录界面js代码

3***@qq.com

3***@qq.com (作者)

那不用Js 获取高度的话 那信息列表就只有原本默认的值的大小,只有屏幕的一半 ,假如自己给列表设个高度的话 那换成别的手机 肯定就会不兼容屏幕的大小。

Neil_HL

Neil_HL

只有屏幕一半是因为你自己设置了height:300px。你设成auto试试

3***@qq.com

3***@qq.com (作者)

还是不行 设置height:auto 后 手机测试会在下面空出一大片白的

7***@qq.com

7***@qq.com

在你的子页面修改body 显示

mui.ready(function() {
var header = document.querySelector('header.mui-bar');
var list = document.getElementById('list');
/**/
var body= document.getElementById('communication');
console.log(body)
body.style.display="block";
//calc hieght
//list.style.height = (document.body.offsetHeight - header.offsetHeight) + 'px';

            list.style.height = document.body.offsetHeight + 'px';  
            console.log(document.body.offsetHeight)  
            //create  
            window.indexedList = new mui.IndexedList(list);  
        });

该问题目前已经被锁定, 无法添加新回复