前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序学习笔记:实现tab切换和for循环嵌套

微信小程序学习笔记:实现tab切换和for循环嵌套

作者头像
德顺
发布2019-11-13 17:13:05
1.1K0
发布2019-11-13 17:13:05
举报
文章被收录于专栏:前端资源前端资源前端资源

最近在研究小程序,写了一个下图所示的实例:

微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第1张
微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第1张

上面部分是Tab标签,点击会出现选中效果,下面部分是内容框,随着tab标签的切换而且换。

现在就简单的记录一下,class部分就不写了,可以根据自己的实际情况进行设置。

tab标签部分我用了 scroll-view 滑动组件,这里就不详细介绍了,有时间再单独写一个介绍。

定义一个 tabActive,给 tab 绑定一个点击事件,通过 e 获取到被点击的 current 的值,将这个值赋给 tabActive ,并和 {{index}} 进行比较,两个值相同则给它一个代表选中的类名,实现 tab 的点击效果。

下面的 {{serviceList}} 是内容部分,当 tabActive  和 {{index}} 值相同时,给他一个 show 的类名,实现内容区的切换效果。

微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第2张
微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第2张

js 部分,点击获取 current 值:

微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第3张
微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第3张

js 数据部分:比较随意哈,请忽略。。。

微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第4张
微信小程序学习笔记:实现tab切换和for循环嵌套 小程序 第4张

贴一下代码:声明一下我也是初学者,可能方法不是最好的,也可能存在一些问题,欢迎大家批评指正,共同交流。

index.wxml 部分代码:

<scroll-view scroll-x scroll-with-animation="true">
  <view class='cate-tab'>
    <view class='cate-tab-item {{tabActive==index?"active":""}}' wx:for='{{cateTabItem}}' bindtap="tabClick" data-current="{{index}}" wx:key="{{index}}">
      {{item}}
    </view>
  </view>
</scroll-view>
<view wx:for="{{serviceList}}" class='cate-list {{tabActive==index?"show":"hidden"}}' wx:key="{{*this}}">
  <view class='cate-list-item' wx:for="{{item}}" wx:for-item="items" wx:key="">
    <view class='user-info'>
      <image class='user-logo' src="{{items.logo}}"></image>
      <text class='user-name'>{{items.name}}</text>
      <view class='like-box-fr'>
        <image class='user-like' src='../../icons/like.png'></image>
        <text class='like-num'>52</text>
      </view>
    </view>
    <view class='product-info'>
      <view>{{items.info}}</view>
      <image src="{{items.src}}"></image>
    </view>
  </view>
</view>

index.js 部分代码:

数据:

tabActive: 0, //先给tabActive设置一初始值,默认是第一个显示
cateTabItem: [
      '全部',
      '人才招聘',
      '企业服务',
      '二手闲置',
      '生活服务',
      '企业需求'
    ],
    serviceList:[
        [{
          logo: '../../image/boy.png',
          name: 'Deshun',
        info: 'WXML(WeiXin Markup Language)写法:<标签名 属性名="属性名"> </标签名>注意:小程序是有大小写敏感的,书写的时候注意区分大小写四个语言特性:1.数据绑定、组件属性:Mustache数据绑定使用 Mustache 语法(双大括号)将变量包起来',
        src: '../../image/html5.jpg',
      }],
      [{
        logo: '../../icons/cate-icon1.png',
        name: '李四',
        info: 'WXSS(WeiXin Markup Language)写法:<标签名 属性名="属性名"> </标签名>注意:小程序是有大小写敏感的,书写的时候注意区分大小写四个语言特性:1.数据绑定、组件属性:Mustache数据绑定使用 Mustache 语法(双大括号)将变量包起来',
        src: '../../image/html5.jpg'
      }],
      [{
        logo: '../../icons/cate-icon1.png',
        name: '王五',
        info: '王五王五王五王五王五',
        src: '../../icons/cate-icon1.png',
      }],
      [{
        logo: '../../icons/cate-icon1.png',
        name: '马六',
        info: '马六马六马六马六马六马六',
        src: '../../icons/cate-icon1.png',
      }],
      [{
        logo: '../../icons/cate-icon1.png',
        name: '赵七',
        info: '赵七赵七赵七赵七赵七赵七',
        src: '../../icons/cate-icon1.png',
      }],
      [
        {logo: '../../icons/cate-icon1.png',
        name: '孙八',
        info: '孙八孙八孙八孙八孙八孙八孙八孙八',
        src: '../../icons/cate-icon1.png',
        },
      ],
    ],

点击事件:

tabClick: function(e) { //点击tab 设置 tabActive 的值
    this.setData({
      tabActive: e.currentTarget.dataset.current
    })
  },
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-21),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档