better-scroll滾動(dòng)排坑

BetterScroll號(hào)稱目前最好用的移動(dòng)端滾動(dòng)插件械荷,因此它的強(qiáng)大之處肯定是存在的。要不...哈哈。個(gè)人感覺(jué)還是很好用的朗徊。這篇文章不是籠統(tǒng)的講BetterScroll,而是單講滾動(dòng)偎漫,想要深入了解它爷恳,請(qǐng)移步或者這里

  • 滾動(dòng)原理
結(jié)構(gòu)圖

綠色部分為 wrapper象踊,也就是父容器温亲,它會(huì)有固定的高度。黃色部分為 content杯矩,它是父容器的第一個(gè)子元素栈虚,它的高度會(huì)隨著內(nèi)容的大小而撐高。那么史隆,當(dāng) content 的高度不超過(guò)父容器的高度节芥,是不能滾動(dòng)的,而它一旦超過(guò)了父容器的高度逆害,我們就可以滾動(dòng)內(nèi)容區(qū)了。橫向滾動(dòng)的原理一致就是將固定高度改為固定寬度蚣驼。(這里就不啰嗦了)

  • 縱向滾動(dòng)

    廢話不多說(shuō)魄幕,我們直接上代碼。

    <template>
      <div class="wrapper" ref="wrapper">
          <ul>
            <li v-for="item in 8">{{item}}</li>
          </ul>
      </div>
    </template>
    <script>
      import BScroll from 'better-scroll';
        export default {
          mounted() {
            this.$nextTick(() => {
              this.scroll = new BScroll(this.$refs.wrapper);
            });
          }
        };
    </script>
    <style type="text/css">
      .wrapper{
        overflow:hidden;
        height:100vh;
      }
      ul li{
        height:400px;
      }
    </style>
    

    這是一個(gè)Vue BetterScroll縱向滾動(dòng)demo,這里需要注意的有兩點(diǎn)颖杏。

    • 只能有一層父級(jí)div纯陨,也就是容器
    • 父級(jí)div要設(shè)置溢出隱藏,并且固定高度
  • 橫向滾動(dòng)

    橫向滾動(dòng)留储,相比縱向滾動(dòng)需要?jiǎng)討B(tài)的去獲取滾動(dòng)區(qū)的寬度翼抠,直接上代碼。

    <template>
      <div class="tab" ref="tab">
        <ul class="tab_content" ref="tabWrapper">
          <li class="tab_item" v-for="item in itemList" ref="tabitem">
              {{item.title}}
          </li>
        </ul>
      </div>
      </template>
      <script>
      import BScroll from 'better-scroll';
        export default {
          data() {
            return{
              itemList:[
              {
                'title':'關(guān)注'
              },
              {
                'title':'推薦'
              },
              {
                'title':'深圳'
              },
              {
                'title':'視頻'
              },
              {
                'title':'音樂(lè)'
              },
              {
                'title':'熱點(diǎn)'
              },
              {
                'title':'新時(shí)代'
              },
              {
                'title':'娛樂(lè)'
              },
              {
                'title':'頭條號(hào)'
              },
              {
                'title':'問(wèn)答'
              },
              {
                'title':'圖片'
              },
              {
                'title':'科技'
              },
              {
                'title':'體育'
              },
              {
                'title':'財(cái)經(jīng)'
              },
              {
                'title':'軍事'
              },
              {
                'title':'國(guó)際'
              }
              ]
            }
          },
          created() {
            this.$nextTick(() => {
              this.InitTabScroll();
            });
          },
          methods:{
            InitTabScroll(){
              let width=0
              for (let  i = 0; i <this.itemList.length; i++) {
                  width+=this.$refs.tabitem[0].getBoundingClientRect().width; //getBoundingClientRect() 返回元素的大小及其相對(duì)于視口的位置
              }
              this.$refs.tabWrapper.style.width=width+'px'
              this.$nextTick(()=>{
                  if (!this.scroll) {
                    this.scroll=new BScroll(this.$refs.tab, {
                      startX:0,
                      click:true,
                      scrollX:true,
                      scrollY:false,
                      eventPassthrough:'vertical'
                    });
                  }else{
                    this.scroll.refresh()
                  }
              });
            }
          }
        };
      </script>
      <style lang="scss" scoped>
      .tab{
        width: 100vw;
        overflow: hidden;
        padding:5px;
        .tab_content{
          line-height: 2rem;
          display: flex;
          .tab_item{
            flex: 0 0 60px;
            width:60px;
          }  
        }
      }  
      </style>
    

    橫向滾動(dòng)需要注意获讳。

    • 只能有一層父級(jí)div阴颖,也就是容器
    • 父容器要設(shè)置溢出隱藏并固定寬度
    • 動(dòng)態(tài)獲取滾動(dòng)區(qū)的寬度

因?yàn)樽罱?xiàng)目需要,所以從網(wǎng)上查閱了許多資料也無(wú)法解決我的問(wèn)題丐膝。BetterScroll官網(wǎng)也沒(méi)有提供實(shí)際demo參考量愧,所以就利用休息時(shí)間,寫(xiě)了這篇文章帅矗。希望能對(duì)你們有用偎肃。需要具體demo請(qǐng)移步,別忘了給個(gè)star啊浑此,寫(xiě)文章不容易累颂,給個(gè)贊唄!

tips:上文的代碼可以直接使用凛俱,小伙伴們安裝完依賴后可以直接copy測(cè)試哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末紊馏,一起剝皮案震驚了整個(gè)濱河市料饥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘦棋,老刑警劉巖稀火,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異赌朋,居然都是意外死亡凰狞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)沛慢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)赡若,“玉大人,你說(shuō)我怎么就攤上這事团甲〈仆牛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵腹纳,是天一觀的道長(zhǎng)雄坪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)匹厘,這世上最難降的妖魔是什么嘀趟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮愈诚,結(jié)果婚禮上她按,老公的妹妹穿的比我還像新娘。我一直安慰自己炕柔,他們只是感情好酌泰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著匕累,像睡著了一般陵刹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欢嘿,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天授霸,我揣著相機(jī)與錄音,去河邊找鬼际插。 笑死碘耳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的框弛。 我是一名探鬼主播辛辨,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了斗搞?” 一聲冷哼從身側(cè)響起指攒,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎僻焚,沒(méi)想到半個(gè)月后允悦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虑啤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年隙弛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狞山。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡全闷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萍启,到底是詐尸還是另有隱情总珠,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布勘纯,位于F島的核電站局服,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏驳遵。R本人自食惡果不足惜淫奔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望超埋。 院中可真熱鬧,春花似錦佳鳖、人聲如沸霍殴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)来庭。三九已至,卻和暖如春穿挨,著一層夾襖步出監(jiān)牢的瞬間月弛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工科盛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帽衙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓贞绵,卻偏偏與公主長(zhǎng)得像厉萝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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