最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序如何實現(xiàn)中間帶加號的tabbar

 更新時間:2022年04月29日 10:44:45   作者:安小軒  
自定義tabBar可以讓開發(fā)者更加靈活地設(shè)置tabBar樣式,以滿足更多個性化的場景,下面這篇文章主要給大家介紹了關(guān)于小程序如何實現(xiàn)中間帶加號tabbar的相關(guān)資料,需要的朋友可以參考下

前言

相信大家也看過很多app或者小程序的tabbar中間是一個突出加號,這個用自帶的組件無法實現(xiàn),需要我們手動寫一個tabbar的樣式來實現(xiàn)效果。我們一起看看吧!

首先新建一個tabbar的組件。

html代碼

注意點:需要判斷是否是iphonex系列的手機(jī),這類手機(jī)需要設(shè)置高度。對于中間的加號突出的菜單,格外設(shè)置樣式。直接使用了navigator,省去了需要寫方法跳轉(zhuǎn)這一步驟。但是需要設(shè)置hover-class="none"屬性。避免點擊時候有陰影出現(xiàn)。

<view class="tabbar_box {{isIphoneX ? 'iphoneX-height':''}}">
    <block wx:for="{{tabbar}}" wx:key="index">
        <navigator wx:if="{{item.isSpecial}}" hover-class="none" url="{{item.pagePath}}" class="tabbar_nav {{item.selected?'selected' : ''}}" open-type="navigate">
            <view class='special-wrapper'>+</view>
        </navigator>
        <navigator wx:else hover-class="none" url="{{item.pagePath}}" class="tabbar_nav {{item.selected?'selected' : ''}}" open-type="switchTab">
            <image class="tabbar_icon" src="{{item.selected ? item.selectedIconPath : item.iconPath}}"></image>
            <text>{{item.text}}</text>
        </navigator>
    </block>
</view>

js代碼

定義tabbar的數(shù)據(jù),包括選中圖標(biāo)和未選中圖標(biāo),路徑url和菜單文本值。

 data: {
    isIphoneX: app.globalData.systemInfo.model.search('iPhone X') != -1 ? true : false,
    tabbar: [{
        "pagePath": "/teacher/pages/teach/classroom/classroom",
        "iconPath": "/image/index.png",
        "selectedIconPath": "/image/index-active.png",
        "text": "首頁"
    },
    {
        "pagePath": "/teacher/pages/teach/publish/publish",
        "isSpecial": true,
    },
    {
        "pagePath": "/teacher/pages/teach/mine/mine",
        "iconPath": "/image/index.png",
        "selectedIconPath": "/image/index-active.png",
        "text": "我的"
    }],
}

在需要的頁面引入組件

在需要你用到tabbar的頁面引入組件

{
  "usingComponents": {
    "custom-tabbar": "../../components/common/custom-tabbar/custom-tabbar",
  }
}

適用不同頁面

可能會有不同的頁面需要展示不同tabbar的時候,可以通過傳參from,來判斷是哪個頁面引用的。從而展示不通的tabbar數(shù)據(jù)。就可以適用于其他需要tabbar的頁面。

<custom-tabbar from="classroom"></custom-tabbar>

設(shè)置tabbar選中狀態(tài)

通過判斷當(dāng)前路由和當(dāng)前tabbar數(shù)據(jù)的path,對比成功后設(shè)置selected屬性,實現(xiàn)選中效果。

setTabbar(){
    let currentPages = getCurrentPages();
    let pagePath = currentPages[currentPages.length - 1].route;
    this.data.tabbar.forEach(item => {
        item.selected = false;
        if(item.pagePath.indexOf(pagePath) > -1){
            item.selected = true;
        }
    })
    this.setData({
        tabbar: this.data.tabbar
    });
 }

css代碼

樣式文件

.tabbar_box{
    background-color: #fff;
    display: flex;
    justify-content: space-around;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 98rpx;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
}

.tabbar_box.iphoneX-height{
    padding-bottom: 66rpx;
}

.middle-wrapper{
  position: absolute;
  right: 310rpx;
  bottom: 0;
  background-color: #fff;
  width: 120rpx;
  height: 120rpx;
  border-radius: 50%;
  border-top: 2rpx solid #f2f2f3;
}

.middle-wrapper.iphoneX-height{
  bottom: 66rpx;
}

.tabbar_nav{
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 20rpx;
    height: 100%;
    position: relative;
    color: rgba(0, 0, 0, 0.45);
    font-size: 24rpx;
}

.tabbar_icon{
    width: 42rpx;
    height: 42rpx;
    margin-bottom: 10rpx;
}

.special-wrapper{
  position: absolute;
  top: -30rpx;
  width: 74rpx;
  height: 74rpx;
  border-radius: 50%;
  background-color: var(--main-font-color);
  text-align: center;
  box-sizing: border-box;
  padding: 6rpx;
  font-size: 54rpx;
  line-height: 54rpx;
  color: #fff;
}

.selected {
    color: var(--main-font-color);
}

最終效果

以上就是實現(xiàn)帶加號的tabbar的全部代碼了,記錄一下,溫故而知新!

總結(jié)

到此這篇關(guān)于小程序如何實現(xiàn)中間帶加號tabbar的文章就介紹到這了,更多相關(guān)小程序加號tabbar內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ECMAScript6中Map/WeakMap詳解

    ECMAScript6中Map/WeakMap詳解

    這篇文章主要介紹了ECMAScript6中Map/WeakMap詳解的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • javascript實現(xiàn)給定半徑求出圓的面積

    javascript實現(xiàn)給定半徑求出圓的面積

    這篇文章主要介紹了javascript實現(xiàn)給定半徑求出圓的面積的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • js 判斷當(dāng)前時間是否處于某個一個時間段內(nèi)

    js 判斷當(dāng)前時間是否處于某個一個時間段內(nèi)

    這篇文章主要介紹了js 判斷當(dāng)前時間是否處于某個一個時間段內(nèi),使用 jutils - JavaScript常用函數(shù)庫的 isDuringDate 函數(shù)來實現(xiàn),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • JavaScript+Canvas創(chuàng)建一個獨特的字符畫生成器

    JavaScript+Canvas創(chuàng)建一個獨特的字符畫生成器

    這篇文章主要介紹了如何使用 Canvas 和 JavaScript 創(chuàng)建一個獨特的字符畫生成器,通過此生成器,我們可以將圖片轉(zhuǎn)換為由字符構(gòu)成的作品,感興趣的可以了解下
    2024-01-01
  • js中鍵盤事件實例簡析

    js中鍵盤事件實例簡析

    這篇文章主要介紹了js中鍵盤事件,以一個較為簡單的實例形式分析了js響應(yīng)鍵盤事件的操作技巧,需要的朋友可以參考下
    2015-01-01
  • Js控制滑輪左右滑動實例

    Js控制滑輪左右滑動實例

    這篇文章主要介紹了Js控制滑輪左右滑動實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • JavaScript 異步時序問題

    JavaScript 異步時序問題

    這篇文章主要介紹了JavaScript 異步時序問題,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-11-11
  • 通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法

    通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法

    下面小編就為大家分享一篇通過js動態(tài)創(chuàng)建標(biāo)簽,并設(shè)置屬性方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • JavaScript模擬push

    JavaScript模擬push

    這篇文章主要介紹了JavaScript模擬數(shù)組合并concat的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 基于原生JS實現(xiàn)分頁效果的示例代碼

    基于原生JS實現(xiàn)分頁效果的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用原生js實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

兰坪| 会昌县| 安庆市| 吉首市| 两当县| 保靖县| 环江| 元阳县| 瓮安县| 南开区| 长沙县| 扶绥县| 晴隆县| 乌鲁木齐市| 新安县| 丁青县| 英山县| 镇赉县| 布尔津县| 永济市| 山西省| 新龙县| 察隅县| 南京市| 甘南县| 乌拉特中旗| 沭阳县| 桂林市| 太保市| 陆河县| 青神县| 合阳县| 静安区| 湖口县| 巴塘县| 吴忠市| 汶上县| 阿拉善盟| 繁昌县| 大厂| 龙胜|