uni-app 利用 scroll-view 和 swiper 制作 頂部導(dǎo)航條 (可復(fù)用)



<view class="body-view">

<scroll-view class="top-menu-view" scroll-x="true" :scroll-left="scrollLeft">

<block v-for="(menuTab,index) in menuTabs" :key="index">

<view class="menu-one-view" v-bind:id="'tabNum'+index" @click="swichMenu(index)">

<view :class="[currentTab==index ? 'menu-one-act' : 'menu-one']">

<view class="menu-one-txt">{{menuTab.name}}</view>

<view class="menu-one-bottom">

<view class="menu-one-bottom-color"></view>

</view>

</view>

</view>

</block>

</scroll-view>

<swiper :current="currentTab" class="swiper-box-list" duration="300" @change="swiperChange">

<block v-for="(swiperDate,index1) in swiperDateList" :key="index1">

<swiper-item>

<scroll-view class="swiper-one-list" scroll-y="true" @scrolltolower="loadMore(index1)">

<block v-for="(swiperDate2,index2) in swiperDate" :key="index2">

<view class="swiper-list-entity">

<view>{{swiperDate2}}</view>

</view>

</block>

</scroll-view>

</swiper-item>

</block>

</swiper>

</view>

data() {

return {

scrollLeft: 0,

isClickChange: false,

currentTab: 0,

menuTabs: [{

name: '政策咨詢'

}, {

name: '就業(yè)分配'

}, {

name: '戰(zhàn)友互助'

}, {

name: '趣味雜談'

}, {

name: '懷舊時(shí)光'

}, {

name: '軍旅生活'

}],

swiperDateList: [[],[],[],[],[],[]]

}

}

onLoad: function() {

//初始化數(shù)據(jù)

for (var i = 0; i < this.swiperDateList.length; i++) {

this.getDateList(i);

}

}


methods: {

swichMenu: async function(current) { //點(diǎn)擊其中一個(gè) menu

if (this.currentTab == current) {

return false;

} else {

this.currentTab = current;

this.setScrollLeft(current);

}

},

swiperChange: async function(e) {

let index = e.target.current;

this.setScrollLeft(index);

this.currentTab = index;

},

setScrollLeft: async function(tabIndex) {

let leftWidthSum = 0;

for (var i = 0; i <= tabIndex; i++) {

let nowElement = await this.getWidth('tabNum' + i);

leftWidthSum = leftWidthSum + nowElement.width;

}

let winWidth = uni.getSystemInfoSync().windowWidth;

this.scrollLeft = leftWidthSum > winWidth ? (leftWidthSum - winWidth) : 0

},

getWidth: function(id) { //得到元素的寬高

return new Promise((res, rej) => {

uni.createSelectorQuery().select("#" + id).fields({

size: true,

scrollOffset: true

}, (data) => {

res(data);

}).exec();

})

},

loadMore: function(tabIndex) {

console.log('正在加載更多數(shù)據(jù)掺逼。娜庇。。')

this.getDateList(tabIndex);

},

getDateList: function(tabIndex) {

for (var i = 0; i < 20; i++) {

var entity = this.menuTabs[tabIndex].name + (this.swiperDateList[tabIndex].length);

this.swiperDateList[tabIndex].push(entity);

}

}

}

page {

width: 100%;

height: 100%;

display: flex;

flex-wrap: wrap;

align-items: flex-start;

justify-content: center;

background: rgba(249, 249, 249, 1);

}

.body-view {

display: flex;

flex: 1;

flex-direction: column;

overflow: hidden;

height: 100%;

width: 100%;

align-items: flex-start;

justify-content: center;

}

.top-menu-view {

display: flex;

white-space: nowrap;

width: 100%;

background-color: #FFFFFF;

height: 112upx;

/* 在這里設(shè)置導(dǎo)航條高度 */

}

.top-menu-view .menu-one-view {

display: inline-block;

white-space: nowrap;

height: 100%;

}

.top-menu-view .menu-one-view .menu-one {

/* 在這里寫 單個(gè)按鈕樣式 */

margin-left: 25upx;

margin-right: 25upx;

position: relative;

height: 100%;

display: flex;

align-items: center;

justify-content: center;

}

.top-menu-view .menu-one-view .menu-one .menu-one-txt {

height: 40upx;

font-size: 28upx;

font-weight: 400;

color: rgba(154, 154, 154, 1);

line-height: 40upx;

}

.top-menu-view .menu-one-view .menu-one .menu-one-bottom {

position: absolute;

bottom: 0;

width: 100%;

}

.top-menu-view .menu-one-view .menu-one .menu-one-bottom .menu-one-bottom-color {

width: 60%;

height: 4upx;

}

.top-menu-view .menu-one-view .menu-one-act {

/* 在這里寫 單個(gè)按鈕樣式 */

margin-left: 25upx;

margin-right: 25upx;

position: relative;

height: 100%;

display: flex;

align-items: center;

justify-content: center;

}

.top-menu-view .menu-one-view .menu-one-act .menu-one-txt {

height: 40upx;

font-size: 28upx;

font-weight: 400;

color: rgba(0, 170, 255, 1);

line-height: 40upx;

}

.top-menu-view .menu-one-view .menu-one-act .menu-one-bottom {

position: absolute;

bottom: 0;

width: 100%;

display: flex;

justify-content: center;

}

.top-menu-view .menu-one-view .menu-one-act .menu-one-bottom .menu-one-bottom-color {

width: 60%;

height: 4upx;

background: rgba(0, 170, 255, 1);

}

.swiper-box-list {

flex: 1;

width: 100%;

height: auto;

background-color: #FFFFFF;

}

.swiper-one-list {

height: 100%;

width: 100%;

}

.swiper-one-list .swiper-list-entity {

width: 100%;

height: 112upx;

text-align: center;

display: flex;

flex-wrap: wrap;

align-items: center;

justify-content: center;

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末最疆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲸沮,更是在濱河造成了極大的恐慌纫雁,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曙寡,死亡現(xiàn)場(chǎng)離奇詭異糠爬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)举庶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門执隧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灯变,你說我怎么就攤上這事殴玛。” “怎么了添祸?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵滚粟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我刃泌,道長(zhǎng)凡壤,這世上最難降的妖魔是什么署尤? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮亚侠,結(jié)果婚禮上曹体,老公的妹妹穿的比我還像新娘。我一直安慰自己硝烂,他們只是感情好箕别,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滞谢,像睡著了一般串稀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狮杨,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天母截,我揣著相機(jī)與錄音,去河邊找鬼橄教。 笑死清寇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的护蝶。 我是一名探鬼主播华烟,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼滓走!你這毒婦竟也來了垦江?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤搅方,失蹤者是張志新(化名)和其女友劉穎比吭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姨涡,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衩藤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涛漂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赏表。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖匈仗,靈堂內(nèi)的尸體忽然破棺而出瓢剿,到底是詐尸還是另有隱情,我是刑警寧澤悠轩,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布间狂,位于F島的核電站,受9級(jí)特大地震影響火架,放射性物質(zhì)發(fā)生泄漏鉴象。R本人自食惡果不足惜忙菠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纺弊。 院中可真熱鬧牛欢,春花似錦、人聲如沸淆游。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)稽犁。三九已至焰望,卻和暖如春骚亿,著一層夾襖步出監(jiān)牢的瞬間已亥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工来屠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虑椎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓俱笛,卻偏偏與公主長(zhǎng)得像捆姜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子迎膜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5泥技? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,486評(píng)論 1 45
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,334評(píng)論 0 10
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,031評(píng)論 0 2
  • 三角鋼琴美麗音質(zhì)的秘密在于鍵盤、琴錘榕订、琴鍵店茶、聲板、弦劫恒、踏板贩幻、以及整體形狀等,所有這些都以"良好音質(zhì)"為目的两嘴,設(shè)計(jì)制...
    af88c59abbf6閱讀 480評(píng)論 0 1
  • 1.整段視頻觀看丛楚,無字幕,結(jié)束后會(huì)顯示其重點(diǎn)詞匯憔辫,并顯示例句趣些; 2.重點(diǎn)詞匯的默寫,播放每個(gè)重點(diǎn)詞匯對(duì)應(yīng)的句子所在...
    RP閱讀 1,417評(píng)論 0 0