• APICloud学习笔记之FrameGroup覆盖bug


    当子页面再打开framegroup时,此framegroup会置于最顶部此bug处理方法如下:

    1.在子页面定义一个事件控制framegroup的显示

      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4     <meta charset="UTF-8">
      5     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
      6     <title>端API</title>
      7     <link rel="stylesheet" type="text/css" href="../css/api.css"/>
      8     <link rel="stylesheet" type="text/css" href="../css/style.css"/>
      9     <style>
     10         header{
     11             height:30px;
     12         }
     13         .order{ 
     14             position:absolute;
     15             bottom:0px;
     16             left:0px;
     17             width:60px;
     18             height:20px;
     19             padding-top:10px;
     20             text-align:center; 
     21             
     22             }
     23         nav{ 
     24             display: -webkit-box;
     25             display: -webkit-flex;
     26             display: box;                                                            
     27             -webkit-box-orient: horizontal;                    
     28             -webkit-flex-flow: row;
     29             flex-flow: row;
     30             position:relative;
     31             width:100%;
     32             height:56px;
     33             background-color:#ffffff;                
     34             }
     35         .nav-item{
     36             padding-top:20px;
     37             -webkit-box-flex: 1;        
     38             -webkit-flex: 1;
     39             flex: 1;    
     40             border-bottom: 1px solid #f3f3f3;    
     41             text-align:center;
     42             color:#afafaf;    
     43         }
     44         .active{ color: #000000; }
     45         .nav-item-bar{
     46             height:5px;
     47             width:60%;
     48             margin:0 auto;
     49             
     50         }
     51         .nav-item-text{
     52             text-align: center;
     53             margin-bottom: 14px;
     54             
     55         }
     56         .bar-active{
     57             background-color:#ffd442;
     58         }
     59         .main{
     60             -webkit-box-flex: 1;     -webkit-flex: 1;    flex: 1;
     61             background-color: #6AB494;
     62         }
     63     </style>
     64 </head>
     65 <body>
     66     <div id="header-content">
     67         <header>
     68             <div class="order">订单</div>
     69         </header>
     70         <nav id="nav">
     71             <div tapmode="hover" name="nav-item" class="nav-item active" onclick="randomSwitchBtn( this );">
     72                 <div class="nav-item-text ">全部订单</div>
     73                 <div class="nav-item-bar bar-active"></div>
     74             </div>
     75             <div tapmode="hover" name="nav-item" class="nav-item" onclick="randomSwitchBtn( this );">
     76                 <div class="nav-item-text">待评价</div>
     77                 <div class="nav-item-bar"></div>
     78             </div>
     79             
     80         </nav>
     81         
     82     </div>
     83     
     84 </body>
     85 <script type="text/javascript" src="../script/api.js"></script>
     86 <script type="text/javascript">
     87     apiready = function () {
     88         $api.fixStatusBar( $api.dom('header') ); 
     89         initEventListener();       
     90         funIniGroup();        
     91     }
     92     function funIniGroup(){        
     93         frames = [];
     94         for (var i = 0,len = 2; i < len; i++) {
     95                 frames.push( { 
     96                     name: 'frame_order'+i, 
     97                     url: '../html/frame_order'+i+'.html', 
     98                     bgColor : 'rgba(0,0,0,.2)',
     99                     bounces:true
    100                 } )
    101         }
    102         api.openFrameGroup({
    103             name: 'orderGroup',
    104             scrollEnabled: false,
    105             rect: {
    106                 x: 0, 
    107                 y: 30+56, 
    108                 w: api.winWidth, 
    109                 h: 450
    110             },
    111             index: 0,
    112             frames: frames
    113         }, function (ret, err) {
    114 
    115         });
    116     }
    117     
    118     function initEventListener() {
    119         api.addEventListener({
    120             name : 'indexChange'
    121         }, function(ret, err) {            
    122             if (ret) {
    123                 if (ret.value) {
    124                     api.setFrameGroupAttr({
    125                         name : 'orderGroup',
    126                         hidden : ret.value.isHidden
    127                     });
    128                 }
    129             }
    130         });
    131     }
    132 
    133     
    134     function randomSwitchBtn( tag ) {
    135     
    136             if( tag == $api.dom('.nav-item.active') )return;
    137             var eLis = $api.domAll('.nav-item'),            
    138                 index = 0;
    139             for (var i = 0,len = eLis.length; i < len; i++) {
    140                 if( tag == eLis[i] ){
    141                     index = i;
    142                 }else{
    143                     $api.removeCls(eLis[i], 'active'); 
    144                     $api.removeCls(eLis[i].childNodes[3], 'bar-active');              
    145                 }
    146             }
    147             $api.addCls( eLis[index], 'active');
    148             $api.addCls(eLis[index].childNodes[3], 'bar-active'); 
    149             api.setFrameGroupIndex({
    150               name: 'orderGroup',
    151               index: index
    152             });
    153         }
    154 </script>
    155 </html>

    2.在父页面传参数控制framegroup显示

      1 <!doctype html>
      2 <html>
      3 <head>
      4     <meta charset="UTF-8">
      5     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
      6     <title>底部导航</title>
      7     <link rel="stylesheet" type="text/css" href="../css/api.css"/>
      8     <link rel="stylesheet" type="text/css" href="../css/style.css"/>
      9     <style>
     10         
     11         #footer{  background-color: #f2f2f2; }
     12         #footer ul li{  padding-top: 36px; padding-bottom: 4px; background: url() no-repeat center 2px; background-size: auto 30px; text-align: center; }
     13         #footer ul li.active{ color: #6ab494; }
     14         #footer ul li:nth-child(1){ background-image: url(../image/a6p.png); }
     15         #footer ul li:nth-child(2){ background-image: url(../image/a6n.png); }
     16         #footer ul li:nth-child(3){ background-image: url(../image/a6r.png); }
     17         
     18         #footer ul li:nth-child(1).active{ background-image: url(../image/a6q.png); }
     19         #footer ul li:nth-child(2).active{ background-image: url(../image/a6o.png); }
     20         #footer ul li:nth-child(3).active{ background-image: url(../image/a6s.png); }
     21         
     22     </style>
     23 </head>
     24 <body>
     25 <div id="wrap" class="flex-wrap flex-vertical">
     26     <header>
     27         
     28     </header>
     29     <div id="main" class="flex-con">
     30 
     31     </div>
     32     <div id="footer" class="border-t">
     33         <ul class="flex-wrap" >            
     34             <li tapmode="hover" onclick="randomSwitchBtn( this );" class="flex-con active" >首页</li>
     35             <li tapmode="hover" onclick="randomSwitchBtn( this );" class="flex-con" >订单</li>
     36             <li tapmode="hover" onclick="randomSwitchBtn( this );" class="flex-con" >我的</li>
     37         </ul>
     38     </div>
     39 </div>
     40 </body>
     41 </html>
     42 <script type="text/javascript" src="../script/api.js"></script>
     43 <script type="text/javascript">
     44     apiready = function () {
     45         $api.fixStatusBar( $api.dom('header') );
     46         funIniGroup();    
     47         
     48     }
     49 
     50     function funIniGroup(){        
     51         frames = [];
     52         for (var i = 0,len = 3; i < len; i++) {
     53                 frames.push( { 
     54                     name: 'frame'+i, 
     55                     url: '../html/frame'+i+'.html', 
     56                     bgColor : 'rgba(0,0,0,.2)',
     57                     bounces:true
     58                 } )
     59         }
     60         api.openFrameGroup({
     61             name: 'group',
     62             scrollEnabled: false,
     63             rect: {
     64                 x: 0, 
     65                 y: 0, 
     66                 w: api.winWidth, 
     67                 h: $api.dom('#main').offsetHeight
     68             },
     69             index: 0,
     70             frames: frames
     71         }, function (ret, err) {
     72             api.sendEvent({
     73                             name : 'indexChange',
     74                             extra : {
     75                                 isHidden : (ret.index == 0)||(ret.index == 2),
     76                             }
     77             });    
     78         });
     79     }
     80 
     81     function fnSetNavMenuIndex(index_) {
     82             fnSetNavMenuSelected(index_)
     83             api.setFrameGroupIndex({
     84                 name : 'mainGroup',
     85                 index : index_,
     86                 scroll : true,
     87             })
     88         }
     89 
     90     
     91     // 随意切换按钮
     92     function randomSwitchBtn( tag ) {
     93         if( tag == $api.dom('#footer li.active') )return;
     94         var eFootLis = $api.domAll('#footer li'),            
     95             index = 0;
     96         for (var i = 0,len = eFootLis.length; i < len; i++) {
     97             if( tag == eFootLis[i] ){
     98                 index = i;
     99             }else{
    100                 $api.removeCls(eFootLis[i], 'active');                
    101             }
    102         }
    103         $api.addCls( eFootLis[index], 'active');
    104         
    105         api.setFrameGroupIndex({
    106             name: 'group',
    107             index: index
    108         });
    109         
    110         api.sendEvent({
    111                 name : 'indexChange',
    112                 extra : {
    113                     isHidden : (index == 0)||(index == 2),
    114                 }
    115             });
    116     }
    117 </script>
  • 相关阅读:
    Elasticsearch通关
    Zookeeper是什么
    手把手带你了解消息中间件(1)——基础
    为什么要分库分表
    mysql的innodb 引擎 表锁与行锁
    MySQL中Innodb的聚簇索引和非聚簇索引
    Redis主从和集群
    redis防止抢购商品超卖
    Laravel 核心--Facades 门面
    PHP数据库操作:使用ORM
  • 原文地址:https://www.cnblogs.com/wuhailong/p/6781468.html
Copyright © 2020-2023  润新知