微信小程序flex布局(实现电商侧栏)

效果图如下:


1750086-80e483b9d419fe6b.gif

参照的是https://blog.csdn.net/u012927188/article/details/73650264这篇文章,但他用的并非是flex布局,今天我用flex布局实现他的效果。

Flex布局的概念
flex布局类似Android中的相对布局RelativeLayout,采用Flex布局的元素,称为Flex容器(flex container)。它的所有子元素自动成为容器成员,称为Flex项目(flex item)。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)

image.png

关于flex布局详细资料可以参考http://www.runoob.com/w3cnote/flex-grammar.html

Flex布局的使用
常用的标签有:

  display: flex; //声明容器为flex布局
  flex-direction: row; //容器内元素的排列方向.row为沿水平轴排列,column为沿垂直轴排列
  justify-content: center; //容器内元素在水平轴上的排列方式,center为居中,默认值flex-start(左对齐)
  align-items: center; //容器内元素在垂直轴上的排列方式,center为居中,默认值stretch

接下来正式实现效果图的效果
wxml:


<view class="container">
  // 左侧
  <view class="nav_left">
    <block wx:for="{{level}}">
      <view class="nav_left_item {{current == item.cate_id ? 'active' : ''}}" 
            data-index='{{index}}' data-id='{{item.cate_id}}' bindtap='onClick'>{{item.cate_name}}</view>
    </block>
  </view>

  //右侧
  <view class="nav_right">
    <view class="nav_right_container" wx:if="{{level[index].ishaveChild}}">
      <block wx:for="{{level[index].children}}">
        <view class="nav_right_item">
          <image class='image' src="{{item.image}}"></image>
          <text class='text'>{{item.name}}</text>
        </view>
      </block>
    </view>
    <view wx:else>该类暂无数据</view> 
  </view>

</view>

wxss:


.container{
  width:100%;
  height:100%;
  display: flex;
  flex-direction: row;
  padding: 0 0 ; //为什么默认上下有200rpx的padding???望高人解答
  align-items: flex-start;
}

.nav_left{
  width : 25%;
  height: 100%;
  background: #f5f5f5;

}

.nav_left_item {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  height: 42px;
  border-bottom: 1px solid #dedede;
  font-size: 14px;
}

.active {
  background: #00ff00;
}

.nav_right {
  width:75%;
}

.nav_right_container {
  width:100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.nav_right_item{
  width: 33.33%;
  height: 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10rpx 0;
}

.image {
  width: 50%;
  height: 50%;
}

.text {
  width: 100%;
  font-size: 14px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-align: center;
}

js:

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // navLeft:["宝宝奶粉", "纸尿裤","辅食营养","母婴专区","护肤美体","营养保健","居家日用","进口美食","轻奢女装","秒杀特惠清仓","时尚箱包","专场大促","汽车用品","美容护肤","电器手机","生活家居","服饰鞋子","还有什么","没有了吧",]

    level:[
      {
        cate_id: 1,
        cate_name: "护肤",
        ishaveChild: true,
        children:
          [
            {
              child_id: 1,
              name: '洁面皂',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161208/148117972563.jpg"
            },
            {
              child_id: 2,
              name: '卸妆',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161207/148110444480.jpg"
            },
            {
              child_id: 3,
              name: '洁面乳',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161208/148117973270.jpg"
            },
            {
              child_id: 4,
              name: '面部祛角质',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161208/148117981591.jpg"
            }
          ]
      },
      {
        cate_id: 2,
        cate_name: "彩妆",
        ishaveChild: true,
        children:
          [
            {
              child_id: 1,
              name: '气垫bb',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/14815381301.jpg"
            },
            {
              child_id: 2,
              name: '修容/高光',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/14815381411.jpg"
            },
            {
              child_id: 3,
              name: '遮瑕',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/148153815181.jpg"
            },
            {
              child_id: 4,
              name: '腮红',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/148153815759.jpg"
            },
            {
              child_id: 5,
              name: '粉饼',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/148153816983.jpg"
            },
            {
              child_id: 6,
              name: '粉底',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/148153817721.jpg"
            },
            {
              child_id: 7,
              name: '蜜粉/散粉',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161212/148153819354.jpg"
            },
            {
              child_id: 8,
              name: '隔离霜',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161215/148179053369.jpg"
            }
          ]
      },
      {
        cate_id: 3,
        cate_name: "香水/香氛",
        ishaveChild: true,
        children:
          [
            {
              child_id: 1,
              name: '淡香水EDT',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161213/14815978910.jpg"
            },
            {
              child_id: 2,
              name: '浓香水EDP',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161213/148159789883.jpg"
            },
            {
              child_id: 3,
              name: '香体走珠',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161213/14815979307.jpg"
            },
            {
              child_id: 4,
              name: '古龙香水男士的最爱',
              image: "http://mz.djmall.xmisp.cn/files/logo/20161213/148159765589.jpg"
            }
          ]
      },
      {
        cate_id: 4,
        cate_name: "个人护理",
        ishaveChild: false,
        children: []
      }
    ],

    current : 1, //当前选中的cate_id
    index : 0 // 当前选中的index
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  
  },

  onClick: function(e) {
      console.log(e)

      this.setData({
        current:e.target.dataset.id,
        index:e.target.dataset.index
      })
  }

})
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容