亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解 vue better-scroll滾動(dòng)插件排坑

 更新時(shí)間:2018年02月08日 11:42:12   作者:zhanzhan_wu  
本篇文章主要介紹了詳解 vue better-scroll滾動(dòng)插件排坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

BetterScroll號稱目前最好用的移動(dòng)端滾動(dòng)插件,因此它的強(qiáng)大之處肯定是存在的。要不...哈哈。個(gè)人感覺還是很好用的。這篇文章不是籠統(tǒng)的講 BetterScroll ,而是單講滾動(dòng),想要深入了解它,請移步這里 。

滾動(dòng)原理

better-scroll 是什么滾動(dòng)原理

better-scroll 是一款重點(diǎn)解決移動(dòng)端(已支持 PC)各種滾動(dòng)場景需求的插件。它的核心是借鑒的 iscroll 的實(shí)現(xiàn),它的 API 設(shè)計(jì)基本兼容 iscroll,在 iscroll 的基礎(chǔ)上又?jǐn)U展了一些 feature 以及做了一些性能優(yōu)化。

better-scroll 是基于原生 JS 實(shí)現(xiàn)的,不依賴任何框架。它編譯后的代碼大小是 63kb,壓縮后是 35kb,gzip 后僅有 9kb,是一款非常輕量的 JS lib。

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

縱向滾動(dòng)

廢話不多說,我們直接上代碼。

<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)。

  1. 只能有一層父級div,也就是容器
  2. 父級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':'音樂'
     },
     {
      'title':'熱點(diǎn)'
     },
     {
      'title':'新時(shí)代'
     },
     {
      'title':'娛樂'
     },
     {
      'title':'頭條號'
     },
     {
      'title':'問答'
     },
     {
      'title':'圖片'
     },
     {
      'title':'科技'
     },
     {
      'title':'體育'
     },
     {
      'title':'財(cái)經(jīng)'
     },
     {
      'title':'軍事'
     },
     {
      'title':'國際'
     }
     ]
    }
   },
   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() 返回元素的大小及其相對于視口的位置
     }
     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)需要注意。

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中過濾器filter的講解

    vue中過濾器filter的講解

    今天小編就為大家分享一篇關(guān)于vue中過濾器filter的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Vue腳手架的簡單使用實(shí)例

    Vue腳手架的簡單使用實(shí)例

    這篇文章主要介紹了Vue腳手架的簡單使用實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue動(dòng)態(tài)表單的應(yīng)用詳解

    Vue動(dòng)態(tài)表單的應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue動(dòng)態(tài)表單的應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Vue 通過公共字段,拼接兩個(gè)對象數(shù)組的實(shí)例

    Vue 通過公共字段,拼接兩個(gè)對象數(shù)組的實(shí)例

    今天小編就為大家分享一篇Vue 通過公共字段,拼接兩個(gè)對象數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 基于vue編寫一個(gè)月餅連連看游戲

    基于vue編寫一個(gè)月餅連連看游戲

    中秋節(jié)快要到啦,我們一起用Vue創(chuàng)建一個(gè)簡單的連連看游戲,連連看大家一定都玩過吧,通過消除相同的圖案來清理棋盤,小編將一步步引導(dǎo)大家完成整個(gè)游戲的制作過程,讓我們開始吧,一起為中秋節(jié)增添一些互動(dòng)和娛樂
    2023-09-09
  • Vue2+Element-ui實(shí)現(xiàn)el-table表格自適應(yīng)高度的案例

    Vue2+Element-ui實(shí)現(xiàn)el-table表格自適應(yīng)高度的案例

    這篇文章主要介紹了Vue2+Element-ui實(shí)現(xiàn)el-table表格自適應(yīng)高度的案例,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • vue項(xiàng)目如何實(shí)現(xiàn)ip和localhost同時(shí)訪問

    vue項(xiàng)目如何實(shí)現(xiàn)ip和localhost同時(shí)訪問

    這篇文章主要介紹了vue項(xiàng)目如何實(shí)現(xiàn)ip和localhost同時(shí)訪問,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3版本網(wǎng)頁小游戲設(shè)計(jì)思路

    vue3版本網(wǎng)頁小游戲設(shè)計(jì)思路

    最近火爆全網(wǎng)的羊了個(gè)羊小程序,背景是根據(jù)官方介紹,“羊了個(gè)羊”是一款闖關(guān)消除小游戲,通關(guān)率不到0.1%。主要玩法為重疊的各類方塊,需要在下方7個(gè)欄內(nèi)完成消除,其特點(diǎn)就是“極難”,也因此成為熱門挑戰(zhàn),對vue3版本網(wǎng)頁小游戲設(shè)計(jì)思路感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • vue輪詢請求解決方案的完整實(shí)例

    vue輪詢請求解決方案的完整實(shí)例

    項(xiàng)目開發(fā)中需要做一個(gè)輪詢,所以將實(shí)現(xiàn)的過程記錄了一下,下面這篇文章主要給大家介紹了關(guān)于vue輪詢解決方案的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Vue.js仿Metronic高級表格(二)數(shù)據(jù)渲染

    Vue.js仿Metronic高級表格(二)數(shù)據(jù)渲染

    這篇文章主要為大家詳細(xì)介紹了Vue.js仿Metronic高級表格的數(shù)據(jù)渲染,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論