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

解決vant中 tab欄遇到的坑 van-tabs

 更新時(shí)間:2020年11月04日 11:48:22   作者:檸檬不萌只是酸i  
這篇文章主要介紹了解決vant中 tab欄遇到的坑 van-tabs,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

話不多說,先看下問題描述:

我的需求:(和頭條的tab欄類似 ,單擊查看頭條tab欄

點(diǎn)擊tab欄,下方展示出來當(dāng)前tab欄下的內(nèi)容列表(A頁面),點(diǎn)擊列表進(jìn)入詳情內(nèi)容(B頁面),但是返回(A頁面)的時(shí)候,需要顯示剛才被點(diǎn)擊的tab欄高亮顯示。(如果tab欄橫向有滾動(dòng)條,那也得讓被選中的高亮顯示)。

所以,大部分人的解決辦法就是將當(dāng)前選中的tab的索引緩存起來,等回到該頁面的時(shí)候,讓被緩存的那個(gè)高亮顯示出來。

坑的問題在于:van-tabs,里面的v-model默認(rèn)值是0,但是類型卻寫著 number | string 。

但是,在此時(shí)用緩存賦值給 v-model = " active " 的時(shí)候,active的值需要是number類型,才有效,否則再怎么設(shè)置都是無效的。

【代碼放入項(xiàng)目可直接執(zhí)行】

<template>
 <div>
  <van-tabs v-model="active" 
   @click="tabHandler"
   :ellipsis="false"
   :border="false"
   >
   <van-tab v-for="(tabname,idx) in tabList" :key="idx" :title="tabname"></van-tab>
  </van-tabs>
  <van-button @click="toDetailHandler">去詳情頁</van-button>
 </div>
</template>
<script>
export default{
 data(){
  return{
   active: Number(localStorage.getItem('activeIdx'))?Number(localStorage.getItem('activeIdx')):0,
   tabList:['111111','2222222','3333333','44444444','55555','666666','7777777','88888','999999999'],
  }
 },
 methods:{
  // tab點(diǎn)擊事件
  tabHandler(idx){
   this.active = idx;
   localStorage.setItem('activeIdx',idx) // 將選中的tab緩存起來
  },
  // 去詳情頁
  toDetailHandler(){
   this.$router.push('/tab1')
  }
 }
}
</script>

最終的效果圖是這樣的,和頭條的tab欄的效果是一樣的。點(diǎn)擊查看 頭條tab效果

補(bǔ)充知識(shí):vue移動(dòng)端框架van-sticky粘性布局,實(shí)現(xiàn)原理和失效原因及注意點(diǎn)

說到粘性布局,我們最常見的就算在app tab選項(xiàng)卡隨頁面滾動(dòng)到頂部后懸停在那,看效果

要實(shí)現(xiàn)這個(gè)效果,最簡單的辦法就是在css樣式里添加position:sticky就可以實(shí)現(xiàn),就這么簡單,比用js監(jiān)聽頁面滾動(dòng),然后達(dá)到一定高度樣式變?yōu)閒ixed,簡單且性能好。

vue 的van-sticky組件實(shí)現(xiàn)粘性的原理就是通過添加position:sticky實(shí)現(xiàn)的,但是如果你使用了position:sticky后失效,并沒有效果的原因有:

1.父元素高度沒子元素高,通常為父元素設(shè)置height:100%;

2:父元素設(shè)置了overflow:hidden,overflow-x:hidden,overflow-y:hidden,或者overflow:auto屬性都能影響到

其中父元素是指所有父元素,不單單是上一級(jí)父元素,在vue中如果失效了別忘了看app.vue組件里是不是設(shè)置了這些。

解決好失效問題后,我們?cè)倏磛an-sticky的其中一個(gè)懸停的時(shí)候距離頂部的距離offset-top

offset-top單位為px,在pc端沒問題,但在移動(dòng)端就有問題了,比如你設(shè)計(jì)稿距離頂部的距離為90px,如果你直接offset-top=90,那么在手機(jī)上就會(huì)距離很遠(yuǎn),

用window.devicePixelRatio獲取設(shè)備的像素,然后再進(jìn)行換算,說實(shí)話不同手機(jī)上還是有差別,有的手機(jī)達(dá)到效果,有的沒達(dá)到

目前我是用了獲取元素offsetHeight在賦值回去,如this.$refs.getheight.offsetHeight,經(jīng)測試能準(zhǔn)確達(dá)到固定的位置,

如果各位有其他好辦法,請(qǐng)?jiān)谙旅媪粞?,大家一起學(xué)習(xí)。

以上這篇解決vant中 tab欄遇到的坑 van-tabs就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue使用微信掃一掃功能的實(shí)現(xiàn)代碼

    vue使用微信掃一掃功能的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue使用微信掃一掃功能的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2020-04-04
  • vue、uniapp中動(dòng)態(tài)添加綁定style、class?9種實(shí)現(xiàn)方法

    vue、uniapp中動(dòng)態(tài)添加綁定style、class?9種實(shí)現(xiàn)方法

    這篇文章主要介紹了vue、uniapp中動(dòng)態(tài)添加綁定style、class?9種方法實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • vue更改數(shù)組中的值實(shí)例代碼詳解

    vue更改數(shù)組中的值實(shí)例代碼詳解

    這篇文章主要介紹了vue更改數(shù)組中的值,本文通過兩個(gè)例子,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 詳解前后端分離之VueJS前端

    詳解前后端分離之VueJS前端

    本篇文章主要介紹了詳解前后端分離之VueJS前端,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • vue中子組件調(diào)用兄弟組件方法

    vue中子組件調(diào)用兄弟組件方法

    這篇文章主要介紹了vue中子組件調(diào)用兄弟組件方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue過濾器與內(nèi)置指令和自定義指令及組件使用詳解

    Vue過濾器與內(nèi)置指令和自定義指令及組件使用詳解

    這篇文章主要介紹了Vue過濾器與內(nèi)置指令和自定義指令及組件使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • Vue語法和標(biāo)簽的入門使用教程

    Vue語法和標(biāo)簽的入門使用教程

    Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,下面這篇文章主要給大家介紹了關(guān)于Vue語法和標(biāo)簽使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Vue ECharts簡易實(shí)現(xiàn)雷達(dá)圖

    Vue ECharts簡易實(shí)現(xiàn)雷達(dá)圖

    這篇文章主要介紹了基于Vue ECharts簡易實(shí)現(xiàn)雷達(dá)圖,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解

    vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解

    下面小編就為大家分享一篇vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue 支持百萬量級(jí)的無限滾動(dòng)組件詳解

    vue 支持百萬量級(jí)的無限滾動(dòng)組件詳解

    這篇文章主要為大家介紹了vue 支持百萬量級(jí)的無限滾動(dòng)組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論

南昌县| 宝清县| 青海省| 海兴县| 内丘县| 尚义县| 瓮安县| 海宁市| 台湾省| 镇雄县| 蛟河市| 广安市| 浑源县| 枣强县| 金乡县| 黄大仙区| 阜康市| 杨浦区| 大埔县| 长阳| 景德镇市| 渭南市| 溧阳市| 潞城市| 平定县| 泊头市| 德钦县| 宜兰市| 罗田县| 南岸区| 濉溪县| 蓬莱市| 高尔夫| 长海县| 迁西县| 甘孜| 赣州市| 扎鲁特旗| 辽宁省| 罗甸县| 桦川县|