教做飲品的網(wǎng)站百度搜索入口網(wǎng)址
文章目錄
- 導(dǎo)文
- 樣式
- 改成動(dòng)態(tài)列表
- 切換點(diǎn)擊效果
- 加上點(diǎn)擊自動(dòng)滑動(dòng)scroll-view
- 加上切換組件效果
導(dǎo)文
unaipp
自帶的標(biāo)簽頁(yè)和ui
設(shè)計(jì)相差太大,直接修改組件比手寫一個(gè)還麻煩,下面手寫一個(gè)。
樣式
先用scroll-view
做一個(gè)滑動(dòng),不然多的話滑動(dòng)不了。
<scroll-view class="scroll-view_H" scroll-x="true" @scroll="scroll" scroll-left="120"><span class="checkDetails-nav-item action">體重</span><span class="checkDetails-nav-item">餐食</span><span class="checkDetails-nav-item">喝水</span><span class="checkDetails-nav-item">睡眠</span><span class="checkDetails-nav-item">運(yùn)動(dòng)</span></scroll-view>
然后實(shí)現(xiàn)默認(rèn)樣式,和標(biāo)簽頁(yè)點(diǎn)擊樣式。
.scroll-view_H {white-space: nowrap;width: 100%;background: #fff;}.scroll-view-item {height: 300rpx;line-height: 300rpx;text-align: center;font-size: 36rpx;}.scroll-view-item_H {display: inline-block;width: 100%;height: 300rpx;line-height: 300rpx;text-align: center;font-size: 36rpx;}.checkDetails-nav-item {font-size: 16px;font-weight: 500;letter-spacing: 0px;line-height: 30px;color: rgba(75, 89, 105, 1);text-align: left;vertical-align: top;background: #fff;padding: 0px 30px;}.action {font-size: 18px;font-weight: 700;letter-spacing: 0px;line-height: 25.2px;color: rgba(12, 16, 25, 1);position: relative;}.action::after {content: '';position: absolute;background-image: url(../../static/checkDetails/action.png);background-size: 100%;background-repeat: no-repeat;width: 28px;height: 10px;top: 18px;left: 34px;}
改成動(dòng)態(tài)列表
循環(huán)自定義的teb組件
就好
<scroll-view class="scroll-view_H" scroll-x="true" @scroll="scroll" scroll-left="120"><span v-for="(item, index) in navList" :key="index" class="checkDetails-nav-item" :class="{ 'action': navCurrent == item.value }">{{ item.text }}</span></scroll-view>
在data中定義列表,和當(dāng)前展示的頁(yè)面值
data() {return {navCurrent: 'weight',navList: [{text: '體重',value: 'weight'}, {text: '餐食',value: 'food'}, {text: '喝水',value: 'drink'}, {text: '睡眠',value: 'sleep'}, {text: '運(yùn)動(dòng)',value: 'sport'}],}},
加上切換頁(yè)面效果。
切換點(diǎn)擊效果
加上一個(gè)handleSwitch點(diǎn)擊事件
<span v-for="(item, index) in navList" :key="index" class="checkDetails-nav-item":class="{ 'action': navCurrent == item.value }" ="handleSwitch(item)">{{ item.text }}</span>
切換navCurrent 值
就好
handleSwitch(item){this.navCurrent = item.value}
加上點(diǎn)擊自動(dòng)滑動(dòng)scroll-view
先把scroll-left
改成動(dòng)態(tài)的,在handleSwitch
方法中添加index索引值
傳過(guò)去
<scroll-view class="scroll-view_H" scroll-x="true" :scroll-left="scrollValue"><span v-for="(item, index) in navList" :key="index" class="checkDetails-nav-item":class="{ 'action': navCurrent == item.value }" @click="handleSwitch(item, index)">{{ item.text }}</span></scroll-view>
使用index索引值,判斷滑動(dòng)位置
handleSwitch(item,index) {this.navCurrent = item.valuethis.scrollValue = index * 100}
加上切換組件效果
先創(chuàng)建好組件,一般放在components
里面
在父頁(yè)面中引入組件,在template
里面寫組件
<view class="checkDetails"><view class="checkDetails-nav"><scroll-view class="scroll-view_H" scroll-x="true" :scroll-left="scrollValue"><span v-for="(item, index) in navList" :key="index" class="checkDetails-nav-item":class="{ 'action': navCurrent == item.value }" @click="handleSwitch(item, index)">{{ item.text }}</span></scroll-view></view><drinkPage v-if="navCurrent == 'drink'"></drinkPage><foodPage v-if="navCurrent == 'food'"></foodPage><sleepPage v-if="navCurrent == 'sleep'"></sleepPage><sportPage v-if="navCurrent == 'sport'"></sportPage><weightPage v-if="navCurrent == 'weight'"></weightPage></view>
</template><script>
別忘了用import
引入和components
注冊(cè)組件名哦
import drinkPage from './components/drinkPage/index.vue'
import foodPage from './components/foodPage/index.vue'
import sleepPage from './components/sleepPage/index.vue'
import sportPage from './components/sportPage/index.vue'
import weightPage from './components/weightPage/index.vue'export default {components: {drinkPage,foodPage,sleepPage,sportPage,weightPage},
您好,我是肥晨。
歡迎關(guān)注我獲取前端學(xué)習(xí)資源,日常分享技術(shù)變革,生存法則;行業(yè)內(nèi)幕,洞察先機(jī)。