uniapp 创建简单的tabs
tabs组件
<template>
  <view class="tabs">
    <view class="bar" :style="barStyle"><view class="inner"></view></view>
    <view v-for="(it, index) of tabs" :key="it" class="item" :class="{ active: active === index }" @click="onClick(index, $event)">
      <text>{{ it }}</text>
    </view>
  </view>
</template>
<script>
export default {
  name: 'my-tabs',
  props: {
    tabs: {
      type: Array,
      default: () => []
    },
    // 选中默认index
    active: {
      type: Number,
      default: 0
    }
  },
  data() {
    return {
      barStyle: {
        transform: 'translateX(0%)'
      }
    };
  },
  methods: {
    onClick(index, $event) {
      this.$emit('onClick', index);
      if (index !== this.active) {
        this.$emit('onChange', index);
      }
    }
  },
  watch: {
    tabs: {
      handler: function(val) {
        this.barStyle.width = `${100 / val.length}%`;
      },
      immediate: true
    },
    active: {
      handler: function(val) {
        // animated
        this.barStyle.transform = `translateX(${val * 100}%)`;
      },
      immediate: true
    }
  }
};
</script>
<style lang="stylus" scoped>
.tabs
  position relative
  display flex
  align-items center
  background-color #fff
  .item
    display flex
    flex 1
    align-items center
    justify-content center
    padding 30rpx
    font-size 30rpx
    transition ease 0.3s
    &.active
      color red
      transition color ease 0.3s
.bar
  position absolute
  left 0
  bottom 0
  height 6rpx
  transition transform ease 0.3s
  display flex
  align-items center
  justify-content center
  .inner
    width 100%
    height 100%
    box-sizing border-box
    margin 0 20rpx
    border-radius 18rpx
    background-color red
</style>
使用
    <myTabs :tabs="tabs" :active="active" @onChange="active = $event"></myTabs>
    <view v-if="active == 0" class="list1">list1</view>
    <view v-if="active == 1" class="list2">list2</view>
import myTabs from '@/shared/widgets/my-tabs.vue';
export default {
  components: { myTabs },
  data() {
    return {
      tabs: ['t0', 't1'],
      active: 0
    };
  },
  methods: {}
};

uniapp 创建简单的tabs的更多相关文章
- [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具
		==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ... 
- Web Service 的创建简单编码、发布和部署
		最近,老大准备将已有的C/S架构项目中的通信部分做成通用,需要将其支持WebService为以后项目向着B/S架构升级做好铺垫,为此身为屌丝的我去各种百度WebService是个什么卵玩意,然后逐渐搭 ... 
- Azure PowerShell (5) 使用Azure PowerShell创建简单的Azure虚拟机和Linux虚拟机
		<Windows Azure Platform 系列文章目录> 本文介绍的是国外的Azure Global.如果是国内由世纪互联运维的Azure China,请参考这篇文档: Azure ... 
- myeclipse(2015)中创建简单的Maven项目的步骤(用于生成可执行jar文件)------》myeclipse2015
		利用MyEclipse的引导,可以很方便的创建简单的.用于生成可执行jar文件的Maven项目: 1.New -> Project... 选择 Maven Project, 点击Next > ... 
- 使用Visual Studio创建简单的自己定义Web Part 部件属性
		使用Visual Studio创建简单的自己定义Web Part 部件属性 自己定义属性使用额外的选项和设置拓展你的Web part部件.本文主要解说怎样使用Visual Studio创建简单的自己定 ... 
- C链表之创建简单静态链表
		C代码: #include<stdio.h> #include<stdlib.h> #include<malloc.h> //创建简单静态链表 typedef st ... 
- 使用Visual Studio 2010 创建简单的Silverlight应用程序
		使用Visual Studio 2010 创建简单的Silverlight应用程序 Silverlight是创建动态的引人的RIAs(Rich Internet Application)的新方法.这里 ... 
- 创建简单的响应式HTML5模版
		创建简单的响应式HTML5模版 HTML5目前发展势头良好,已经逐渐得到大部分浏览器不同程度的支持.许多web开发者也已经学习到了不少关于HTML 5的基础知识并开始试图使用HTML 5制作网页.与此 ... 
- django初探-创建简单的博客系统
		django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ... 
随机推荐
- pycharm设置头文件模板(for mac)
			我们要达到的效果是每次新建一个.py文件都会有头文件,关于头文件的作用之前已做解释 
- Spring 动态代理时是如何解决循环依赖的?为什么要使用三级缓存?
			前言 在研究 『 Spring 是如何解决循环依赖的 』 的时候,了解到 Spring 是借助三级缓存来解决循环依赖的. 同样在上一节留下了疑问: 循环依赖为什么要使用三级缓存?而不是使用二级缓存? ... 
- NOI Linux 快速入门指南
			目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ... 
- 透明小电视上线——GitHub 热点速览 v.21.05
			作者:HelloGitHub-小鱼干 这周的 GitHub Trending 真是棒极了.小鱼干喜欢的科技博主又开源了他的硬件玩具,一个透明的小电视机,HG 的小伙伴看完项目,再买个电路板和分光棱镜, ... 
- 【wp】HWS计划2021硬件安全冬令营线上选拔赛
			逆向手在夹缝中艰难求生系列. 这篇真的存粹是做题笔记了,对内核驱动啥的不太懂,pwn也不会,能做出来的题都是硬逆出来的( childre最后死活没整出来,后来看大佬的wp才知道对子进程有修改(.)呜呜 ... 
- c++复习笔记(2)
			1. 类与对象 类的声明与结构,数据成员和成员函数. 成员函数可以在类外被定义.但是必须在类内声明. 封装:protect--允许类成员和派生类成员访问. 构造函数之外,还有一种初始化类成员的方法:参 ... 
- python2.7.5 +eric4.4.2+PyQt4-4.10.3
			1.安装python 双击运行就可以了 当安装好了Pyhon,记得要配置环境变量,把C:\Python27添加到PATH中 2.安装pyqt默认安装就可以 3.把eric4.4.2拷贝到C:\目录下 ... 
- PIE模型
			首先,我们需要明确程序的Bug有如下的定义: 1. Fault/Defect 静态的,存在于软件中的缺陷.例如:一段有缺失或者错误的代码. 2. Error 运行时一种不正确的中间状态. 3. Fai ... 
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)(9/11)
			$$2017-2018\ ACM-ICPC\ German\ Collegiate\ Programming\ Contest (GCPC 2017)$$ \(A.Drawing\ Borders\) ... 
- 【uva 11134】Fabled Rooks(算法效率--问题分解+贪心)
			题意:要求在一个N*N的棋盘上放N个车,使得它们所在的行和列均不同,而且分别处于第 i 个矩形中. 解法:问题分解+贪心. 由于行.列不相关,所以可以先把行和列均不同的问题分解为2个"在区间 ... 
