zoukankan      html  css  js  c++  java
  • MUI——App启动页与引导页

    MUI学习系列

    App启动页与引导页

    1.启动页(splash):app的启动界面,每次启动都会看到的;
    2.引导页”(guide):guide是否展示是可控的,一般首次启动时打开,以后直接进入App主界面

    • 启动页配置
      • 在manifest.json文件中[启动图配置],并且配置是否自动关闭,代码如下:
      {
          "plus" : {
              "splashscreen" : {
                  "autoclose" : true, /*是否自动关闭程序启动界面,true表示应用加载应用入口页面后自动关闭;false则需调plus.navigator.closeSplashscreen()关闭*/
                  "waiting" : true /*是否在程序启动界面显示等待雪花,true表示显示,false表示不显示。*/
              }
          }
      }
      
    • 引导页配置
      • 展示可控,意味着就会有一个标识去判断是否为首次打开。标识本地储存,可参考Hello mui启动页,逻辑如下:
       mui.plusReady(function() {
           //读取本地存储,检查是否为首次启动
           var showGuide = plus.storage.getItem("lauchFlag");
           //仅支持竖屏显示
           plus.screen.lockOrientation("portrait-primary");
           if(showGuide) {
               //有值,说明已经显示过了,无需显示;
               //关闭splash页面;
               plus.navigator.closeSplashscreen();
               plus.navigator.setFullscreen(false);
               //预加载
               preload();
           } else {
               //显示启动导航
               mui.openWindow({
                   id: 'guide',
                   url: 'examples/guide.html',
                   styles: {
                       popGesture: "none"
                   },
                   show: {
                       aniShow: 'none'
                   },
                   waiting: {
                       autoShow: false
                   }
               });
               //延迟的原因:优先打开启动导航页面,避免资源争夺
               setTimeout(function() {
                   //预加载
                   preload();
               }, 200);
           }
       });
      
      • 在guide.html中做自己想做的功能,如多图轮播,使用mui的slide组件实现
      <!DOCTYPE html>
          <html>
          <head>
              <meta charset="utf-8">
              <title>Hello MUI</title>
              <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
              <meta name="apple-mobile-web-app-capable" content="yes">
              <meta name="apple-mobile-web-app-status-bar-style" content="black">
      
              <link rel="stylesheet" href="../css/mui.min.css">
              <style>
                  #close {
                      position: absolute;
                       160px;
                      left: 50%;
                      margin-left: -80px;
                      bottom: 15%;
                      padding: 10px;
                      color: #fff;
                      border-color: #fff;
                  }
                  .item-logo {
                       100%;
                      height: 100%;
                      position: relative;
                  }
                  .item-logo a {
                       200px;
                      height: 200px;
                      display: block;
                      border: 1px solid #FFFFFF;
                      border-color: rgba(255, 255, 255, 0.5);
                      text-align: center;
                      line-height: 200px;
                      border-radius: 50%;
                      font-size: 40px;
                      color: #fff;
                      position: absolute;
                      top: 15%;
                      left: 50%;
                      margin-left: -100px;
                  }
                  .animate {
                      position: absolute;
                      left: 0;
                      bottom: 15%;
                       100%;
                      color: #fff;
                      display: -moz-box;
                  }
                  .animate h2 {
                      text-align: center;
                      margin-bottom: 20px;
                  }
                  .animate li {
                       50%;
                      height: 30px;
                      line-height: 30px;
                      list-style: none;
                      font-size: 16px;
                      text-align: right;
                  }
                  .animate li:nth-child(3) {
                      text-align: left;
                      float: right;
                  }
                  .animated {
                      -webkit-animation-duration: 1s;
                      -webkit-animation-play-state: paused;
                      -webkit-animation-fill-mode: both;
                  }
                  .guide-show .bounceInDown {
                      -webkit-animation-name: bounceInDown;
                      -webkit-animation-play-state: running;
                      -webkit-animation-delay: 1s;
                      display: block;
                  }
                  .guide-show .bounceInLeft {
                      -webkit-animation-name: bounceInLeft;
                      display: block;
                      -webkit-animation-play-state: running;
                  }
                  .guide-show .bounceInRight {
                      -webkit-animation-name: bounceInRight;
                      display: block;
                      -webkit-animation-play-state: running;
                      -webkit-animation-delay: 0.5s;
                  }
                  @-webkit-keyframes bounceInDown {
                      0%, 60%, 75%, 90%, 100% {
                          -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                          animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                      }
                      0% {
                          opacity: 0;
                          -webkit-transform: translate3d(0, -3000px, 0);
                          transform: translate3d(0, -3000px, 0);
                      }
                      60% {
                          opacity: 1;
                          -webkit-transform: translate3d(0, 25px, 0);
                          transform: translate3d(0, 25px, 0);
                      }
                      75% {
                          -webkit-transform: translate3d(0, -5px, 0);
                          transform: translate3d(0, -5px, 0);
                      }
                      90% {
                          -webkit-transform: translate3d(0, 3px, 0);
                          transform: translate3d(0, 3px, 0);
                      }
                      100% {
                          -webkit-transform: none;
                          transform: none;
                      }
                  }
                  @-webkit-keyframes bounceInLeft {
                      0%, 60%, 75%, 90%, 100% {
                          -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                          animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                      }
                      0% {
                          opacity: 0;
                          -webkit-transform: translate3d(-3000px, 0, 0);
                          transform: translate3d(-3000px, 0, 0);
                      }
                      60% {
                          opacity: 1;
                          -webkit-transform: translate3d(25px, 0, 0);
                          transform: translate3d(25px, 0, 0);
                      }
                      75% {
                          -webkit-transform: translate3d(-10px, 0, 0);
                          transform: translate3d(-10px, 0, 0);
                      }
                      90% {
                          -webkit-transform: translate3d(5px, 0, 0);
                          transform: translate3d(5px, 0, 0);
                      }
                      100% {
                          -webkit-transform: none;
                          transform: none;
                      }
                  }
                  @-webkit-keyframes bounceInRight {
                      0%, 60%, 75%, 90%, 100% {
                          -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                          animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
                      }
                      0% {
                          opacity: 0;
                          -webkit-transform: translate3d(3000px, 0, 0);
                          transform: translate3d(3000px, 0, 0);
                      }
                      60% {
                          opacity: 1;
                          -webkit-transform: translate3d(-25px, 0, 0);
                          transform: translate3d(-25px, 0, 0);
                      }
                      75% {
                          -webkit-transform: translate3d(10px, 0, 0);
                          transform: translate3d(10px, 0, 0);
                      }
                      90% {
                          -webkit-transform: translate3d(-5px, 0, 0);
                          transform: translate3d(-5px, 0, 0);
                      }
                      100% {
                          -webkit-transform: none;
                          transform: none;
                      }
                  }
              </style>
          </head>
      
          <body>
              <div id="slider" class="mui-slider mui-fullscreen" style="background-color: black;">
                  <div class="mui-slider-group">
                      <!-- 第一张 -->
                      <div class="mui-slider-item">
                          <div class="item-logo" style="background-color: #D74B28">
                              <a href="#">
                              MUI
                              </a>
                              <div class="animate guide-show">
                                  <h2 class="animated bounceInDown">小巧高能</h2>
                                  <li class="animated bounceInLeft">几十K的JS和CSS</li>
                                  <li class="animated bounceInRight">上百种控件样式和模板</li>
                              </div>
                          </div>
                      </div>
                      <!-- 第二张 -->
                      <div class="mui-slider-item">
                          <div class="item-logo" style="background-color: #02C1ED;">
                              <a href="#">
                              MUI
                              </a>
                              <div id="tips-2" class="animate mui-hidden">
                                  <h2 class="animated bounceInDown">原生UI</h2>
                                  <li class="animated bounceInLeft">以iOS原生UI为基础</li>
                                  <li class="animated bounceInRight">补充Android特有样式</li>
                              </div>
                          </div>
                      </div>
                      <!-- 第三张 -->
                      <div class="mui-slider-item">
                          <div class="item-logo" style="background-color: #67C962;">
                              <a href="#">
                              MUI
                              </a>
                              <div id="tips-3" class="animate mui-hidden">
                                  <h2 class="animated bounceInDown">流畅体验</h2>
                                  <li class="animated bounceInLeft">下拉刷新、转场动画</li>
                                  <li class="animated bounceInRight">整个世界都流畅了</li>
                              </div>
                          </div>
                      </div>
                      <!-- 第四张 -->
                      <div class="mui-slider-item">
                          <div class="item-logo" style="background-color: #FCD208;">
                              <a href="#">
                              MUI
                              </a>
                              <div class="animate">
                                  <button id='close' class="mui-btn mui-btn-warning mui-btn-outlined">立即体验</button>
                              </div>
                          </div>
                      </div>
                  </div>
                  <div class="mui-slider-indicator">
                      <div class="mui-indicator mui-active"></div>
                      <div class="mui-indicator"></div>
                      <div class="mui-indicator"></div>
                      <div class="mui-indicator"></div>
                  </div>
              </div>
              <script src="../js/mui.min.js"></script>
              <script>
                  mui.back = function() {};
                  mui.plusReady(function() {
                      if(mui.os.ios){
                          plus.navigator.setFullscreen(true);
                      }
                      plus.navigator.closeSplashscreen();
                  });
                  //立即体验按钮点击事件
                  document.getElementById("close").addEventListener('tap', function(event) {
                      plus.storage.setItem("lauchFlag", "true");
                      plus.navigator.setFullscreen(false);
                      plus.webview.currentWebview().close();
                  }, false);
                  //图片切换时,触发动画
                  document.querySelector('.mui-slider').addEventListener('slide', function(event) {
                      //注意slideNumber是从0开始的;
                      var index = event.detail.slideNumber+1;
                      if(index==2||index==3){
                          var item = document.getElementById("tips-"+index);
                          if(item.classList.contains("mui-hidden")){
                              item.classList.remove("mui-hidden");
                              item.classList.add("guide-show");
                          }
                      }
                  });
                  
              </script>
          </body>
      
      </html>
      
  • 相关阅读:
    python 中文字符的处理
    python的一些内置函数
    python之命令行解析工具argparse
    牛客-小阳买水果
    牛客-小石的海岛之旅 (线性联通块)
    腾讯笔试-拼凑硬币
    2020腾讯笔试--Ice Cave
    2020-字节跳动笔试(树距离之和[距离按%3值不同,分为三类])
    2020-字节跳动笔试(最少工资)
    干物妹小埋(吉首大学2019)---线段树+dp
  • 原文地址:https://www.cnblogs.com/gongxiansheng/p/11241692.html
Copyright © 2011-2022 走看看