帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
20
帖子
0
勋章
125
Y币

[其他] 当前项切换不生效,frame能切换

[复制链接]
发表于 2018-6-26 15:11:47
apiready = function() {
      var header = $api.byId('header');
      var nav = $api.byId('nav');
      $api.fixStatusBar(header); // 沉浸式适配 :给 id为 header 的元素增加适当的上内边距 避免header与状态栏重叠
      var headerH = $api.offset(header).h; // 获取id为 header 的元素高度
      var navH = $api.offset(nav).h; // 获取id为 nav 的元素高度
      var menus = $api.domAll(nav, "div.menu");
      var frames = [];
      for (let i=0;i<menus.length;i++){
          frames.push({ // 加载数组
              name: 'main_frame_' + i,
              url: 'main_frame_'+ i +'.html'
          })
      }
      api.openFrameGroup ({
          name: 'mainFrameGroup',
          background: 'tranparent',
          scrollEnabled: true, // 每一个 Frame 是否支持手势滚动
          rect: {  // Frame填充位置
               x: 0,
               y: headerH + navH,
               w: 'auto',
               h: 'auto'
          },
          index: 0, // 默认显示项
          frames: frames
      }, function(ret, err){
          fnSetNavMenuActive(ret.index); // 传递 ret 里面的 index 来操作当前项
      });

    };

    var nav = $api.byId('nav');
    var menus = $api.domAll(nav, "div.menu");
    function fnSetNavMenuActive(index_){
      for(var i=0;i<menus.length;i++){
        if( index_ == i ){
          $api.addCls(menus[i], 'avtive');
        }else{
          $api.removeCls(menus[i], 'avtive');
        }
      }
    }

20
帖子
0
勋章
125
Y币
求大大们支援~对照教学视频查找了无数次,找不到问题所在~懵了~
13
帖子
6
勋章
105
Y币
具体说说啊,就一段js代码看不懂啊
20
帖子
0
勋章
125
Y币
maokun00 发表于 2018-6-26 15:18
具体说说啊,就一段js代码看不懂啊

我希望实现在滑动切换frame的时候菜单栏的当前项能调用 fnSetNavMenuActive()方法对应切换:现在问题是当前项frame能滑动切换,当前项切换不生效,但是我在 fnSetNavMenuActive() 里弹窗能生效:
function fnSetNavMenuActive(index_){
      for(var i=0;i<menus.length;i++){
        if( index_ == i ){
          $api.addCls(menus, 'avtive');
          alert(1);
        }else{
          $api.removeCls(menus, 'avtive');
        }
      }
    }
弹窗能生效,$api.addCls(menus, 'avtive');这一段不生效
20
帖子
0
勋章
125
Y币
function fnSetNavMenuActive(index_){
      for(var i=0;i<menus.length;i++){
        if( index_ == i ){
          $api.addCls(menus[i], 'avtive');
          alert(1);
        }else{
          $api.removeCls(menus[i], 'avtive');
        }
      }
    }
13
帖子
6
勋章
105
Y币
你的class active是怎么写的
20
帖子
0
勋章
125
Y币
maokun00 发表于 2018-6-26 15:50
你的class active是怎么写的

您好大大,这样写的:
nav .menu.active{
        background:#920f4b;
        color:#ff7c34;
      }
20
帖子
0
勋章
125
Y币
浅说心欲无痕 发表于 2018-6-26 16:16
您好大大,这样写的:
nav .menu.active{
        background:#920f4b;

对不起~上面单词打错了,哭晕在厕所~
13
帖子
6
勋章
105
Y币
每次循环你都打印一下你的menus[i],看看
20
帖子
0
勋章
125
Y币
maokun00 发表于 2018-6-26 16:20
每次循环你都打印一下你的menus,看看

谢谢大大,解决了~
12下一页
您需要登录后才可以回帖 登录

本版积分规则