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);
我侧过了,就是选择完第一个第二个效果还没显示完,所以不选择,设个延时就好了。希望对以后的朋友有帮助。
4.关于聚焦在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";
}
}
-
.mui-content {overflow:hidden} 解决 scroll 滚动条问题
-
官方的checkbox例子中,点击checkbox的圆圈,触发2次change,已解决
不采用官方的checkbox, 自己重写。
-
打开新的webview,样式渲染需要时间,防止用户在第一眼看到乱的样式之前,用loaded加载完毕再show出
来, 虽然页面加载完毕好了,但是js的渲染还在继续,所以可以适当的采用延迟,这里我给了300msmui("#slider .mui-slider-group").on("tap", ".mui-slider-item", function() { var waiting = plus.nativeUI.showWaiting("等待中..."); var detailView = plus.webview.create('detail.html','detail.html'); var proId = this.getAttribute("id"); mui.fire(detailView,'getProDetailInfo',{ "proDetail": data["banners"][1] }); var waiting = plus.nativeUI.showWaiting("等待中..."); detailView.addEventListener("loaded",function(){//页面加载完成后才显示 setTimeout(function() { plus.nativeUI.closeWaiting("等待中..."); detailView.show("pop-in"); }, 300) },false); })
0 个评论
要回复文章请先登录或注册