背景:
1、共有10个webview页面,利用hide和show,左右拖动切换。
2、由于swiperight手势体验不好,经常失效,所以改用了dragright或dragleft。
疑难:
1、拖动事件经常重复执行,已经在代码中加了过滤,但还是会出现重复执行。
2、切换页面时每次都会有其中几页的拖动失效,就是不起作用了。有时候第5页,有时候第6页,这个随机的。
代码:
1、主页面切换部分代码
function showpage(pagenumber,source){
if(fzSlideing == 1){
return false;
}
if(pagenumber > 10 || pagenumber == 0){
return false;
}
fzSlideing = 1;
var sourcepage = 'pg'+source+'_sub.html';
activeTab = 'pg'+pagenumber+'_sub.html';
if(pagenumber > source){
plus.webview.hide(sourcepage,"slide-out-left",250,plus.webview.show(activeTab,"slide-in-right",600));
}
if(pagenumber < source){
plus.webview.hide(sourcepage,"slide-out-right",250,plus.webview.show(activeTab,"slide-in-left",600));
}
setTimeout(function () {
fzSlideing = 0;
}, 600);
}
2、子页面部分代码:
mui.init({
swipeBack: false,
keyEventBind: {
backbutton: false
}
});
var srcpage = 1; //当前页数 (10个页面的代码都是一样的,除了这个变量)
var leftpage = srcpage - 1; //左边页数
var rightpage = srcpage + 1; //右边页数
window.addEventListener('dragright', function(e) {
plus.nativeUI.toast(leftpage+" "+srcpage);
var mp = plus.webview.getLaunchWebview();
mp.evalJS("showpage("+leftpage+","+srcpage+")");
});
window.addEventListener('dragleft', function(e) {
plus.nativeUI.toast(rightpage+" "+srcpage);
var mp = plus.webview.getLaunchWebview();
mp.evalJS("showpage("+rightpage+","+srcpage+")");
});
7***@qq.com (作者)
很奇怪,我将10个子页面减少到7个子页面就完全没有问题了,各种顺畅。 这究竟是什么原因造成的呢? webview过多?
2016-07-20 16:08