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

vue使用better-scroll實(shí)現(xiàn)橫向滾動的方法實(shí)例

 更新時間:2021年06月02日 11:55:48   作者:鐵錘妹妹@  
這幾天研究項(xiàng)目時,看到了 better-scroll 插件,看著感覺功能挺強(qiáng),這篇文章主要給大家介紹了關(guān)于vue使用better-scroll實(shí)現(xiàn)橫向滾動的相關(guān)資料,需要的朋友可以參考下

一、滾動的實(shí)現(xiàn)原理

better-scroll的滾動原理和瀏覽器原生滾動原理是一樣的,當(dāng)子盒子的高度大于父盒子的高度,就會出現(xiàn)縱向滾動;同理,如果子盒子的寬度大于父盒子的寬度,那么就會出現(xiàn)橫向滾動。

二、better-scroll的 html 結(jié)構(gòu)

先來看一下 better-scroll 常見的 html 結(jié)構(gòu):

<div class="wrapper">
  <ul class="content">
    <li>...</li>
    <li>...</li>
    ...
  </ul>
</div>

BetterScroll應(yīng)用于外部wrapper容器,并且滾動部分是content。請注意,wrapper默認(rèn)情況下,BetterScroll處理容器()的第一個子元素(內(nèi)容)的滾動,這意味著其他元素將被忽略。

三、在Vue中使用better-scroll

npm install better-scroll --save  //npm 安裝
import BScroll from 'better-scroll'  //組件文件中引入better-scroll
<template>
   /* 橫向滾動 */
   /* 這里是父盒子*/
<div
        class="wrapper_box"
        style="min-height:100vh;
        "
        ref="wrapper"
        v-else
      >
      /* 這里是子盒子,即滾動區(qū)域*/
        <div class="content" ref="wrapperChild">
          <div
            v-for="(item, index) in currentImgList"
            :key="index"
            class="imgItem"
          >
            <img :src="item.img" class="img" style="margin: 0 10px;" />
          </div>
        </div>
      </div>
</template>
<script>
 import BScroll from "better-scroll";
 export default {
  data() {
    return {
      currentImgList: [
        { img: require("../../assets/image/zzb_1.png") },
        { img: require("../../assets/image/zzb_2.png") },
        { img: require("../../assets/image/zzb_3.png") }
      ],
    };
  },
  mounted() {
    this.slide_x(); //橫向滾動
  },
  methods: {
     // 初始化
    _initScroll() {
      if (!this.scroll) {
        this.scroll = new BScroll(this.$refs.wrapper, { // 實(shí)例化BScroll接受兩個參數(shù),第一個為父盒子的dom節(jié)點(diǎn)
          startX: 0, /// 配置的詳細(xì)信息請參考better-scroll的官方文檔,這里不再贅述
          click: true,
          scrollX: true,
          scrollY: false, // 忽略豎直方向的滾動
          eventPassthrough: "vertical",
          useTransition: false // 防止快速滑動觸發(fā)的異常回彈
        });
      } else {
        this.scroll.refresh(); //如果dom結(jié)構(gòu)發(fā)生改變調(diào)用該方法重新計(jì)算來確保滾動效果的正常
      }
    },
    // 計(jì)算寬度
    _calculateWidth() {
      // 獲取類名為 imgItem 的標(biāo)簽
      let rampageList = this.$refs.wrapperChild.getElementsByClassName(
        "imgItem"
      );
      // 設(shè)置一個起始寬度
      let initWidth = 0;
      // 遍歷標(biāo)簽
      for (let i = 0; i < rampageList.length; i++) {
        const item = rampageList[i];
        // 將每一個標(biāo)簽寬度相加
        initWidth += item.clientWidth;
      }
      // 設(shè)置可滾動的寬度
      this.$refs.wrapperChild.style.width = `${initWidth}px`;
    },
    slide_x() {
      this.$nextTick(() => { //this.$nextTick 是一個異步函數(shù),為了確保 DOM 已經(jīng)渲染完畢
        this._initScroll(); // 初始化
        this._calculateWidth(); // 計(jì)算寬度
      });
    },
    },
   

};
</script>

下面是插件原作者說的:

四. 容易出現(xiàn)問題的點(diǎn):

  1. 必須等到頁面DOM渲染完成再去執(zhí)行BScroll的實(shí)例化,建議在mounted 鉤子函數(shù)里執(zhí)行
  2. 子盒子的寬度大于父盒子的寬度

最后

better-scroll插件作者的文章,發(fā)現(xiàn)better-scroll真強(qiáng)大?。?/p>

當(dāng) better-scroll 遇見 Vue

在Vue中用better-scroll實(shí)現(xiàn)橫向滾動

到此這篇關(guān)于vue使用better-scroll實(shí)現(xiàn)橫向滾動的文章就介紹到這了,更多相關(guān)vue better-scroll實(shí)現(xiàn)橫向滾動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中v-cloak解決刷新或者加載出現(xiàn)閃爍問題(顯示變量)

    vue中v-cloak解決刷新或者加載出現(xiàn)閃爍問題(顯示變量)

    這篇文章主要介紹了vue中v-cloak解決刷新或者加載出現(xiàn)閃爍問題(顯示變量) ,需要的朋友可以參考下
    2018-04-04
  • vue修改滾動條樣式的方法

    vue修改滾動條樣式的方法

    這篇文章主要介紹了vue修改滾動條樣式,首先要知道,修改滾動條樣式,利用偽元素-webkit-scrollbar。下面來看看文章內(nèi)容的具體實(shí)現(xiàn)吧
    2021-11-11
  • 通過npm引用的vue組件使用詳解

    通過npm引用的vue組件使用詳解

    本文章通過實(shí)現(xiàn)一個vue-dialog的彈出層組件,然后附加說明如果發(fā)布此包到npm,且能被其他項(xiàng)目使用。本文給大家介紹的非常詳細(xì),需要的的朋友參考下
    2017-03-03
  • vue 解決addRoutes動態(tài)添加路由后刷新失效問題

    vue 解決addRoutes動態(tài)添加路由后刷新失效問題

    這篇文章主要介紹了vue 解決addRoutes動態(tài)添加路由后刷新失效問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue通過vue-lazyload實(shí)現(xiàn)圖片懶加載的代碼詳解

    vue通過vue-lazyload實(shí)現(xiàn)圖片懶加載的代碼詳解

    這篇文章主要給大家介紹了vue通過vue-lazyload實(shí)現(xiàn)圖片懶加載,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Vue的狀態(tài)管理vuex使用方法詳解

    Vue的狀態(tài)管理vuex使用方法詳解

    由于Vue多個狀態(tài)分散的跨越在許多組件和交互間各個角落,大型應(yīng)用復(fù)雜度也經(jīng)常逐漸增長。為了解決這個問題,Vue提供了vuex。本文將詳細(xì)介紹Vue狀態(tài)管理vuex,需要的朋友可以參考下
    2020-02-02
  • vue3中實(shí)現(xiàn)圖片壓縮的示例代碼

    vue3中實(shí)現(xiàn)圖片壓縮的示例代碼

    圖片壓縮是一種比較便捷的壓縮方式,本文主要介紹了vue3中實(shí)現(xiàn)圖片壓縮的示例代碼,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • vant中l(wèi)ist的使用以及首次加載觸發(fā)兩次解決問題

    vant中l(wèi)ist的使用以及首次加載觸發(fā)兩次解決問題

    這篇文章主要介紹了vant中l(wèi)ist的使用以及首次加載觸發(fā)兩次解決問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能

    Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue實(shí)現(xiàn)點(diǎn)擊圖片放大顯示功能,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的可以了解一下
    2023-03-03
  • vue使用directive限制表單輸入整數(shù)、小數(shù)的方法

    vue使用directive限制表單輸入整數(shù)、小數(shù)的方法

    這篇文章主要介紹了vue使用directive限制表單輸入整數(shù),小數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論

绍兴县| 仙游县| 平利县| 汶上县| 搜索| 汤原县| 武山县| 瑞昌市| 河北区| 白沙| 沂南县| 九江县| 南郑县| 晋州市| 普定县| 吉首市| 东港市| 阿城市| 阳城县| 玉屏| 十堰市| 米林县| 胶州市| 察隅县| 绍兴市| 呼图壁县| 余庆县| 景泰县| 永和县| 沂水县| 肇庆市| 龙陵县| 扎兰屯市| 晋江市| 滁州市| 康马县| 浦北县| 电白县| 筠连县| 石屏县| 达州市|