1.思路:
其時有2個WebView,一個main是用來裝主頁面,一個menu是用來裝菜單(為提高性能,菜單項是采用了預加載方式的,預加載時為了避免和主頁面爭奪資源,采用延時加載,例如:
//plusReady事件后,自動創建menu窗口;
mui.plusReady(function() {
main = plus.webview.currentWebview();
//setTimeout的目的是等待窗體動畫結束后,再執行create webview操作,避免資源競爭,導致窗口動畫不流暢;
setTimeout(function () {
//側滑菜單默認隱藏,這樣可以節省內存;
menu = mui.preload({
id: 'offcanvas-drag-right-plus-menu',
url: 'offcanvas-drag-right-plus-menu.html',
styles: {
left: 0,
width: '70%'
}
});
},300);
});
2. 所謂側滑,就是控制菜單WebView的顯示,使用它的left來定位左邊位置;
3. 要打開新的webView,要注意webview的show方法使用:
void plus.webview.show( id_wvobj, aniShow, duration, showedCB, extras );
參數含義:(1)是webview對象 (2)動畫效果,從沒顯示過,一般用"none",(3)動畫過渡時間 (4)當指定Webview窗口顯示動畫執行完畢時觸發回調函數,窗口無動畫效果(如"none"動畫效果)時也會觸發此回調。(5)傳遞的參數;
4.顯示的方法:
(1)按鈕點擊后,讓menu直接show出來,並對main設置樣式,比如
menu.show("none",0,function(){
main.setStyle({
left:"70%",
transition:{
duration:150
}
});
});
(2)關閉側滑菜單,實際就是設置main的樣式了,比如:
main.setStyle({
left: '0',
transition: {
duration: 150
}
});
另外注意窗體切換完成后要關掉menu
//等窗體動畫結束后,隱藏菜單webview,節省資源;
setTimeout(function() {
menu.hide();
}, 200);
5.被打開的WebView的界面如何控制關閉側滑菜單:
(1)先要找到主頁面,main = plus.webview.currentWebview().opener();
(2)激發主頁面的某個事件,例如:mui.fire(main,"menu:swipeleft");