1.打开一个webview,要采用延时,因为webview样式渲染需要时间
bindCreateAddr: function() {//新建地址栏
mui("#addressManage .mui-scroll")[0].innerHTML = '';
mui(".check-btn-total")[0].classList.add("hide");
setTimeout(function() { //加个延时
mui.openWindow({
url: 'newAddress.html',
id: 'newAddress.html',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
});
}, 70);
},
要加个延时。虽然js的确清除了innerHmtl = '' 但是webview的渲染执行,在openwindow执行后,未必就
渲染成功。
否则到newAddress.html 页面 再返回的时候,webview的渲染才会执行,就会看到执行innerHTML = ''操作之前的样式,然后再显示 innerHTML = '' 执行的操作样式。
这里重点注意一下。。。
- picker 省市区的三级联动 选中默认值,必须得加上延时才行。
cityPicker.pickers[0].setSelectedValue(130000);
setTimeout(function(){
cityPicker.pickers[1].setSelectedValue(130200);
},100);
我侧过了,就是选择完第一个第二个效果还没显示完,所以不选择,设个延时就好了。希望对以后的朋友有帮助。
3.关于聚焦在input框上,系统自动调用软键盘会将底部的fixed定位的按钮顶起来。
原因是因为: 调用软键盘的显示,会将当前的webview挤压,减少视口的高度。
解决:监控 document.body.onresize 的事件来解决问题。
如下代码:
//代码结构如下,所有内容包含在了mui-scroll 里面。因为mui-scroll 是absolute,所以body的高度是无法因内容的多少而变化的。
//所以监控了mui-scroll的高度。
// 初始化加载第一次的未调用软键盘时的高度 newAddress.view.scrollOffHeight = mui(".mui-scroll")[0].offsetHeight。
//然后再比较, 代码如下:
<div class="mui-content">
<div class="mui-scroll-wrapper">
<div class="mui-scroll">
</div>
</div>
</div>
newAddress.view.scrollOffHeight = mui(".mui-scroll")[0].offsetHeight;//
document.body.onresize = function() {
if(newAddress.view.scrollOffHeight > mui(".mui-scroll")[0].offsetHeight) {//比较
mui(".check-btn-total")[0].style.cssText = "display:none"; //控制底部的fixed按钮
} else {
mui(".check-btn-total")[0].style.cssText = "display:block";
}
}
4 .mui-content {overflow:hidden} 解决 scroll 滚动条问题
1 个评论
该文章目前已经被锁定, 无法添加新评论