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

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

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

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

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

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

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

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

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

【代碼放入項目可直接執(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點擊事件
  tabHandler(idx){
   this.active = idx;
   localStorage.setItem('activeIdx',idx) // 將選中的tab緩存起來
  },
  // 去詳情頁
  toDetailHandler(){
   this.$router.push('/tab1')
  }
 }
}
</script>

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

補充知識:vue移動端框架van-sticky粘性布局,實現原理和失效原因及注意點

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

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

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

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

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

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

解決好失效問題后,我們再看van-sticky的其中一個懸停的時候距離頂部的距離offset-top

offset-top單位為px,在pc端沒問題,但在移動端就有問題了,比如你設計稿距離頂部的距離為90px,如果你直接offset-top=90,那么在手機上就會距離很遠,

用window.devicePixelRatio獲取設備的像素,然后再進行換算,說實話不同手機上還是有差別,有的手機達到效果,有的沒達到

目前我是用了獲取元素offsetHeight在賦值回去,如this.$refs.getheight.offsetHeight,經測試能準確達到固定的位置,

如果各位有其他好辦法,請在下面留言,大家一起學習。

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

相關文章

  • vue使用微信掃一掃功能的實現代碼

    vue使用微信掃一掃功能的實現代碼

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

    vue、uniapp中動態(tài)添加綁定style、class?9種實現方法

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

    vue更改數組中的值實例代碼詳解

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

    詳解前后端分離之VueJS前端

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

    vue中子組件調用兄弟組件方法

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

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

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

    Vue語法和標簽的入門使用教程

    Vue是一套用于構建用戶界面的漸進式框架,下面這篇文章主要給大家介紹了關于Vue語法和標簽使用的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Vue ECharts簡易實現雷達圖

    Vue ECharts簡易實現雷達圖

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

    vue watch監(jiān)聽對象及對應值的變化詳解

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

    vue 支持百萬量級的無限滾動組件詳解

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

最新評論

天柱县| 南宁市| 通山县| 三明市| 皮山县| 厦门市| 武汉市| 武鸣县| 田阳县| 富平县| 图木舒克市| 禄劝| 天台县| 古田县| 孝感市| 射洪县| 阳朔县| 柳江县| 鄱阳县| 淮阳县| 平原县| 永泰县| 丰原市| 同心县| 双牌县| 潢川县| 清流县| 和田县| 汕头市| 闽清县| 新绛县| 龙里县| 滨海县| 中卫市| 商水县| 东乌| 澄江县| 西畴县| 淮北市| 聂荣县| 九江市|