webview_mask.html 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  6. <meta name="HandheldFriendly" content="true"/>
  7. <meta name="MobileOptimized" content="320"/>
  8. <title>Hello H5+</title>
  9. <script type="text/javascript" src="../js/common.js"></script>
  10. <script type="text/javascript">
  11. var ws=null,wc=null;
  12. // 扩展API加载完毕,现在可以正常调用扩展API
  13. function plusReady(){
  14. ws=plus.webview.currentWebview();
  15. // 用户点击后
  16. ws.addEventListener('maskClick', function(){
  17. wc.close('auto');
  18. },false);
  19. }
  20. // 判断扩展API是否准备,否则监听plusready事件
  21. if(window.plus){
  22. plusReady();
  23. }else{
  24. document.addEventListener('plusready', plusReady, false);
  25. }
  26. // 显示侧滑页面
  27. function showSide(){
  28. // 防止快速点击可能导致多次创建
  29. if(wc){
  30. return;
  31. }
  32. // 开启遮罩
  33. ws.setStyle({mask:'rgba(0,0,0,0.5)'});
  34. // 创建侧滑页面
  35. wc = createWithoutTitle('webview_mask_side.html', {
  36. left: '30%',
  37. width: '70%',
  38. popGesture: 'none',
  39. titleNView: {
  40. autoBackButton: true,
  41. backgroundColor: '#D74B28',
  42. titleColor: '#CCCCCC',
  43. titleText: '侧滑窗口'
  44. }
  45. });
  46. // 侧滑页面关闭后关闭遮罩
  47. wc.addEventListener('close', function(){
  48. ws.setStyle({mask:'none'});
  49. wc = null;
  50. }, false);
  51. // 侧滑页面加载后显示(避免白屏)
  52. wc.addEventListener('loaded', function(){
  53. wc.show('slide-in-right', 200);
  54. }, false);
  55. }
  56. </script>
  57. <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
  58. </head>
  59. <body>
  60. <br/>
  61. <div class="button" onclick="showSide()">打开侧滑窗口</div>
  62. <div class="des">打开侧滑窗口后,当前Webview窗口会显示遮罩层。</div>
  63. <div class="des">Webview的遮罩层会覆盖Webview中所有内容(包括子Webview),并且截获Webview窗口的所有触屏事件。</div>
  64. </body>
  65. </html>