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

vue列表自動(dòng)滾動(dòng)實(shí)例

 更新時(shí)間:2023年10月09日 08:48:13   作者:學(xué)不會(huì)190  
這篇文章主要介紹了vue列表自動(dòng)滾動(dòng)實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue列表自動(dòng)滾動(dòng)

想要實(shí)現(xiàn)vue列表數(shù)據(jù)自動(dòng)滾動(dòng),鼠標(biāo)劃入列表滾動(dòng)停止

就是這樣的效果

下面上代碼

首先安裝 npm install vue-seamless-scroll --save

npm install vue-seamless-scroll --save

在需要的頁(yè)面引入

import vueSeamlessScroll from "vue-seamless-scroll";

使用

<vueSeamlessScroll
   :data="vehicleRecordListData"
   class="seamless-warp"
   :class-option="defaultOption"
 >
   <ul class="item">
      <li
           v-for="(item, index) in vehicleRecordListData"
           :key="index"
        >
                        <span class="title" v-text="item.inAutoPlate"></span>
                        <span class="date" v-text="item.vehicleCategory"></span>
                        <span class="date" v-text="item.isInOrOut"></span>
                        <span>{{ item.inOrOutTime | dateFormatValue }}</span>
                        <span>{{ item.inOrOutType }}</span>
                        <span>{{ item.inOrOutLaneName }}</span>
                      </li>
                    </ul>
                  </vueSeamlessScroll>

配置項(xiàng)

keydescriptiondefaultval
step數(shù)值越大速度滾動(dòng)越快1Number
limitMoveNum開啟無縫滾動(dòng)的數(shù)據(jù)量5Number
hoverStop是否啟用鼠標(biāo)hover控制 true Boolean 
direction方向 0 往下 1 往上 2向左 3向右1Number
openTouch移動(dòng)端開啟touch滑動(dòng) true  Boolean  
singleHeight單步運(yùn)動(dòng)停止的高度(默認(rèn)值0是無縫不停止的滾動(dòng)) direction => 0/10Number
singleWidth單步運(yùn)動(dòng)停止的寬度(默認(rèn)值0是無縫不停止的滾動(dòng)) direction => 2/30Number
waitTime單步停止等待時(shí)間(默認(rèn)值1000ms)1000Number

vue列表 自動(dòng)滾動(dòng) 加 鼠標(biāo)滾輪

<template>
  <div class="scroll-container" id="scrollContainer">
    <Scroll :id="'service'">
      <template>
        <!-- <div v-for="(item,idx) in scrollListData" :key="idx + 'n'" class="service" @click="rowClick(item)">
          {{item.name}}
        </div> -->
        <ul>
          <li v-for="(item,idx) in scrollListData" :key="idx + 'n'" class="service" @click="rowClick(item)">
            <div class="service-chaild">{{ item.name }}</div>
            <div class="service-chaild">{{ item.value }}</div>
          </li>
        </ul>
      </template>
    </Scroll>
  </div>
</template>
<script>
  import Scroll from "@/components/HelloWorld";
  export default {
    name: 'TestPage',
    components: {
      Scroll
    },
    data() {
      return {
        scrollListData: [{
            name: '嘉興',
            value: '5555'
          },
          {
            name: '上海',
            value: '5555'
          },
          {
            name: '蘇州',
            value: '5555'
          },
          {
            name: '南京',
            value: '5555'
          },
          {
            name: '嘉興',
            value: '5555'
          },
          {
            name: '上海',
            value: '5555'
          },
          {
            name: '蘇州',
            value: '5555'
          },
          {
            name: '南京',
            value: '5555'
          },
          {
            name: '嘉興',
            value: '5555'
          },
          {
            name: '上海',
            value: '5555'
          },
          {
            name: '蘇州',
            value: '5555'
          },
          {
            name: '南京',
            value: '5555'
          }
        ]
      };
    },
    methods: {
      rowClick(row) {
        console.log(row, 'row ==================')
      }
    },
  };
</script>
<style>
  .scroll-container {
    height: 200px;
    width: 200px;
    margin-bottom: 20px;
  }
  .service {
    font-size: 12px;
    line-height: 18px;
    cursor: pointer;
    display: flex;
  }
  .service:nth-child(odd) {
    background: yellow;
  }
  .service:nth-child(even) {
    background: orange;
  }
  .service-chaild {
    height: 50px;
  }
</style>
<template>
  <div class="scrollContainer" :id="id" @mouseenter="monseenter" @mouseleave="mouseleave">
    <slot></slot>
  </div>
</template>
<script>
  export default {
    name: 'ScrollList',
    props: {
      id: String
    },
    data() {
      return {
        timer: null
      };
    },
    methods: {
      init() {
        this.setTimer();
        // this.$once代表只執(zhí)行一次。如果組件是在keep-alive中包裹,則需要更換函數(shù)
        // 被keep-alive包裹住的組件有兩個(gè)生命周期函數(shù):activated和deactivated
        this.$once('hook:beforeDestroy', () => {
          this.removeTimer();
        });
      },
      removeTimer() {
        if (this.timer) {
          clearInterval(this.timer);
          this.timer = null;
        }
      },
      setTimer() {
        this.removeTimer();
        this.timer = setInterval(() => {
          // pixel height:include el and padding    read only
          const scrollHeight = document.getElementById(this.id).scrollHeight;
          // visible area height:include el and padding  read only
          const clientHeight = document.getElementById(this.id).clientHeight;
          const heightDifference = scrollHeight - clientHeight;
          // scroll height:readable and writable
          document.getElementById(this.id).scrollTop++;
          // when el scroll to top
          if (document.getElementById(this.id).scrollTop >= heightDifference - 1) {
            this.removeTimer();
            // make it go back to original location after one second
            setTimeout(() => {
              document.getElementById(this.id).scrollTop = 0;
              this.setTimer();
            }, 1000);
          }
        }, 44);
      },
      monseenter() {
        this.removeTimer();
      },
      mouseleave() {
        this.setTimer();
      }
    },
    mounted() {
      this.init();
    }
  };
</script>
<style>
  .scrollContainer::-webkit-scrollbar {
    width: 4px;
    background: aliceblue;
  }
  .scrollContainer::-webkit-scrollbar-thumb {
    background: palevioletred;
    border-radius: 5px;
  }
  .scrollContainer {
    height: 100%;
    overflow: scroll;
    overflow-x: hidden;
  }
  /* // 兼容IE */
  .scrollContainer {
    /*三角箭頭的顏色*/
    scrollbar-arrow-color: #fff;
    /*滾動(dòng)條滑塊按鈕的顏色*/
    scrollbar-face-color: #0099dd;
    /*滾動(dòng)條整體顏色*/
    scrollbar-highlight-color: #0099dd;
    /*滾動(dòng)條陰影*/
    scrollbar-shadow-color: #0099dd;
    /*滾動(dòng)條軌道顏色*/
    scrollbar-track-color: #0066ff;
    /*滾動(dòng)條3d亮色陰影邊框的外觀顏色——左邊和上邊的陰影色*/
    scrollbar-3dlight-color: #0099dd;
    /*滾動(dòng)條3d暗色陰影邊框的外觀顏色——右邊和下邊的陰影色*/
    scrollbar-darkshadow-color: #0099dd;
    /*滾動(dòng)條基準(zhǔn)顏色*/
    scrollbar-base-color: #0099dd;
  }
</style>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue子組件內(nèi)的props對(duì)象參數(shù)配置方法

    Vue子組件內(nèi)的props對(duì)象參數(shù)配置方法

    這篇文章主要介紹了?Vue?子組件內(nèi)的??props?對(duì)象里的?default?參數(shù)是如何定義Array、?Object?、或?Function?默認(rèn)值的正確寫法說明,感興趣的朋友跟隨小編一起看看吧
    2022-08-08
  • vue3?Error:Unknown?variable?dynamic?import:?../views/的解決方案

    vue3?Error:Unknown?variable?dynamic?import:?../views/的解

    這篇文章主要給大家介紹了關(guān)于vue3?Error:Unknown?variable?dynamic?import:?../views/的解決方案,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Vue簡(jiǎn)明介紹配置對(duì)象的配置選項(xiàng)

    Vue簡(jiǎn)明介紹配置對(duì)象的配置選項(xiàng)

    我們知道每一個(gè)vue項(xiàng)目應(yīng)用都是通過vue的構(gòu)造函數(shù)進(jìn)行創(chuàng)建一個(gè)新的vue項(xiàng)目的。創(chuàng)建vue實(shí)例的配置對(duì)象,可以包括一下屬性選項(xiàng),比如:data、methods、watch、template等等,每一個(gè)選項(xiàng)都有不同的功能,大家可以根據(jù)自己的需求選擇不同的配置
    2022-08-08
  • vue學(xué)習(xí)教程之帶你一步步詳細(xì)解析vue-cli

    vue學(xué)習(xí)教程之帶你一步步詳細(xì)解析vue-cli

    這篇文章的主題是vue-cli的理解。或許,很多人在開發(fā)vue的時(shí)候,我們會(huì)發(fā)現(xiàn)一個(gè)問題——只會(huì)去用,而不明白它的里面的東西?,F(xiàn)在的框架可以說是足夠的優(yōu)秀,讓開發(fā)者不用為搭建開發(fā)環(huán)境而煩惱。但是有時(shí)候,我們還是得回到原始生活體驗(yàn)一下,才能夠讓自己更上層樓。
    2017-12-12
  • vue3中element-plus router的使用方式

    vue3中element-plus router的使用方式

    這篇文章主要介紹了vue3中element-plus router的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3封裝京東商品詳情頁(yè)放大鏡效果組件

    vue3封裝京東商品詳情頁(yè)放大鏡效果組件

    這篇文章主要為大家詳細(xì)介紹了vue3封裝類似京東商品詳情頁(yè)放大鏡效果組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue2.0腳手架搭建

    Vue2.0腳手架搭建

    這篇文章介紹了使用vue-cli搭建腳手架的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解在vue-cli中使用graphql即vue-apollo的用法

    詳解在vue-cli中使用graphql即vue-apollo的用法

    這篇文章主要介紹了詳解在vue-cli中使用graphql即vue-apollo的用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue3響應(yīng)式Object代理對(duì)象的讀取示例詳解

    vue3響應(yīng)式Object代理對(duì)象的讀取示例詳解

    這篇文章主要為大家介紹了vue3響應(yīng)式Object代理對(duì)象的讀取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue如何設(shè)置動(dòng)態(tài)的柵格占位、水平偏移量、類名、樣式

    vue如何設(shè)置動(dòng)態(tài)的柵格占位、水平偏移量、類名、樣式

    這篇文章主要介紹了vue如何設(shè)置動(dòng)態(tài)的柵格占位、水平偏移量、類名、樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論

恩平市| 鄱阳县| 古浪县| 祁阳县| 沧州市| 乌兰浩特市| 新昌县| 微博| 宝鸡市| 孙吴县| 衡山县| 沛县| 石首市| 忻州市| 兴文县| 邛崃市| 黄龙县| 荆门市| 安塞县| 富川| 沛县| 嘉荫县| 法库县| 乌拉特前旗| 珠海市| 沿河| 工布江达县| 太谷县| 赣州市| 烟台市| 修水县| 山西省| 建瓯市| 晋中市| 天全县| 乳山市| 平乐县| 尚志市| 搜索| 泸溪县| 孟津县|