小程序?qū)崿F(xiàn)Tab選項卡

前言

小程序開發(fā)中馒索,有很多封裝好的控件供開發(fā)者使用莹妒,但是,很常見的tab選項卡居然沒有绰上。旨怠。。哎蜈块,像安卓中還有TabLayout結(jié)合ViewPager使用鉴腻,沒辦法,自己擼一個百揭。

效果圖

實現(xiàn)

wxml布局代碼

首先我們要在wxml中把布局寫好爽哎,有幾個tab就添加幾個view,下面的內(nèi)容我們使用swiper來實現(xiàn)

<view class='container'>
  <!--Tab布局-->
  <view class='title'>
    <view class='titleSel' bindtap='titleClick' data-idx='0'>
      <text>第一個選項</text>
      <hr class="{{0 == currentIndex ? 'headerLineSel' : 'headerLineUnsel'}}" />
    </view>
    
    <view class='titleSel' bindtap='titleClick' data-idx='1'>
      <text>第二個選項</text>
      <hr class="{{1 == currentIndex ? 'headerLineSel' : 'headerLineUnsel'}} " />
    </view>
  </view>

  <!--內(nèi)容布局-->
  <swiper class='swiper' bindchange='pagechange' current='{{currentIndex}}'>
    <swiper-item class='swiper'>
      <view wx:for="{{firstList}}" class='recordItem'>
        <view class='name'>昵稱:{{item}}</view>
      </view>
    </swiper-item>
    <swiper-item class='swiper' class='swiper'>
      <view wx:for="{{secondList}}" class='recordItem'>
        <view class='name'>昵稱:{{item}}</view>
      </view>
    </swiper-item>
  </swiper>
</view>
wxss樣式代碼
.container {
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.title {
  width: 100%;
  height: 88rpx;
  background: white;
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.titleSel {
  color: #5f6fee;
  font-size: 32rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.titleUnsel {
  color: #858fab;
  font-size: #858fab;
}

.headerLineSel {
  background: #5f6fee;
  height: 6rpx;
  width: 40rpx;
  position: relative;
  margin-top: 10rpx;
}

.headerLineUnsel {
  background: #fff;
  height: 6rpx;
  width: 40rpx;
  position: relative;
  margin-top: 10rpx;
}

.swiper {
  width: 100%;
  flex: 1;
  height:100vh;
  overflow: scroll;
}

.recordItem {
  margin-top: 10rpx;
  background-color: white;
  padding-bottom: 20rpx;
  padding-top: 20rpx;
}
js代碼
  data: {
    currentIndex: 0,
    "firstList": ["LXT", "LXT", "LXT", "LXT", "LXT", "LXT"],
    "secondList": ["GFF", "GFF", "GFF", "GFF", "GFF", "GFF", "GFF", "GFF"]
  },
  //swiper切換時會調(diào)用
  pagechange: function (e) {
    if ("touch" === e.detail.source) {
      let currentPageIndex = this.data.currentIndex
      currentPageIndex = (currentPageIndex + 1) % 2
      this.setData({
        currentIndex: currentPageIndex
      })
    }
  },
  //用戶點擊tab時調(diào)用
  titleClick: function (e) {
    let currentPageIndex =
      this.setData({
        //拿到當(dāng)前索引并動態(tài)改變
        currentIndex: e.currentTarget.dataset.idx
      })
  }

原理

其實呢器一,實現(xiàn)原理也很簡單课锌,無非是用給view(tab)設(shè)置一個點擊事件bintap,并且給view(tab)一個data-idx索引祈秕,根據(jù)當(dāng)前index來改變tab的狀態(tài)并決定swiper顯示那個內(nèi)容渺贤,改變swiper的內(nèi)容只需要改變swiper的current就好,官方文檔



那么當(dāng)內(nèi)容改變時请毛,我們也要改變tab選項卡的狀態(tài)志鞍,這時候我們給swiper來一個bindchange,同樣是官方文檔


尾聲

OK方仿,本期教學(xué)就到此結(jié)束了固棚,希望能幫到大家,偷偷告訴你們仙蚜,本期文章全是以代碼形式貼出來的玻孟,要用的直接拷貝就行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鳍征,一起剝皮案震驚了整個濱河市黍翎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艳丛,老刑警劉巖匣掸,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氮双,居然都是意外死亡碰酝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門戴差,熙熙樓的掌柜王于貴愁眉苦臉地迎上來送爸,“玉大人,你說我怎么就攤上這事∠В” “怎么了墨吓?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纹磺。 經(jīng)常有香客問我帖烘,道長,這世上最難降的妖魔是什么橄杨? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任秘症,我火速辦了婚禮,結(jié)果婚禮上式矫,老公的妹妹穿的比我還像新娘乡摹。我一直安慰自己,他們只是感情好采转,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布聪廉。 她就那樣靜靜地躺著,像睡著了一般氏义。 火紅的嫁衣襯著肌膚如雪锄列。 梳的紋絲不亂的頭發(fā)上图云,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天惯悠,我揣著相機(jī)與錄音,去河邊找鬼竣况。 笑死克婶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丹泉。 我是一名探鬼主播情萤,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摹恨!你這毒婦竟也來了筋岛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晒哄,失蹤者是張志新(化名)和其女友劉穎睁宰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寝凌,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡柒傻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了较木。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片红符。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出预侯,到底是詐尸還是另有隱情致开,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布雌桑,位于F島的核電站喇喉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏校坑。R本人自食惡果不足惜楣铁,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仅叫。 院中可真熱鬧盅惜,春花似錦、人聲如沸邪驮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毅访。三九已至沮榜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喻粹,已是汗流浹背蟆融。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留守呜,地道東北人型酥。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像查乒,于是被迫代替她去往敵國和親弥喉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評論 25 707
  • 好久沒有更新了玛迄,今天更新點東西由境。 大多數(shù)的商城類小程序都有這個功能,點擊“全部訂單”蓖议,“待付款”虏杰,“待發(fā)貨”,“待...
    _vb閱讀 917評論 0 2
  • 今天起晚了,因為昨天晚上睡晚了从撼,所以這個錯誤昨天晚上就種下了州弟。 起床后開始忙一些雜事钧栖,很煩。 之后看了會兒新一期的...
    lovejasmine閱讀 224評論 0 1
  • “那個女孩似乎有些不簡單婆翔≌埽”人來人往的街道上,九幽看了一眼后方的遠(yuǎn)處啃奴,突然對牧塵說道潭陪。 “嗯?” 牧塵一愣最蕾。 “她...
    混沌天書閱讀 644評論 0 0