【微信小程序开发】快速开发一个动态横向导航模板并使用

目标:作个横向导航,能够横向滚动。数组

思路:使用scroll-view组件,可实现横向滚动功能。scroll-view内包含一个动态的view列表,表明导航的每一项,导航要接收动态数组,而后使用列表展现。使用模板技术作到可复用。xss

按照思路,先要作个template。this

新建一个wxml文件:navbar.wxmlspa

<template name="navbar">
<scroll-view class='navbar' scroll-x="true" style="width: 100%">
    <view id="{{item.id}}" wx:for="{{menus}}" wx:key="{{item.id}}" class="item {{currentTab==item.id ? 'active' : ''}}" bindtap="navbarTap">{{item.name}}</view>
  </scroll-view >
</template>

再建相应的wxss文件:navbar.wxsscode

 .navbar{  
  background: #eeeeee;   
  white-space:  nowrap;
}  
.navbar .item{  
  margin: 20rpx;
  display: inline-block;
}  
.navbar .item.active{  
  color: #0000ff;
  font-weight:800;
}

这样一个导航模板就建立好了。xml

接着在本身的页面中使用这个模板。blog

建议页面:index get

在index.wxml中使用模板:it

<import src="navbar.wxml" />
<view>
<template is="navbar" data="{{menus,currentTab}}" />
</view>

这里要注意src的路径要找对,data参数名称也要与模板里一致。io

接着在index.wxss中使用模板样式:

@import "/template/navbar.wxss";

引入这么一句就好了。

而后在index.js中绑定数据:

Page({

  /**
   * 页面的初始数据
   */
  data: {
    menus: [
      { id:0, name: '水果' },
      { id:1, name: '水果' },
      { id:2, name: '一线海景' },
      { id:3, name: '水果' },
      { id:4, name: '水果' },
      { id:5, name: '一线海景' },
      { id: 6, name: '一线海景' },
      { id: 7, name: '水果' },
      { id: 8, name: '水果' },
      { id: 9, name: '一线海景' }
      ],
    currentTab: 0
  },
  navbarTap: function (e) {
    this.setData({
      currentTab: e.currentTarget.id
    });
    console.log(e);
  }
})

运行结果:

 欢迎关注

相关文章
相关标签/搜索