vue中使用vue-seamless-scroll插件實現列表無縫滾動效果
需求:使用vue-seamless-scroll插件實現列表無縫滾動,也可以添加相應的點擊跳轉,點擊事件會存在點擊失效的問題。支持上下左右無縫滾動,單步滾動停留時間,以及水平方向的手動切換。
效果圖:
基於vue的無縫滾動組件
註意:需要給父容器一個
height
和:data='Array'
和overfolw:hidden;
左右滾動需要給ul容器一個初始化css width
。
參考配置:
向下滾動
direction:0
向下滾動
direction:1
向左滾動
direction:2
向右滾動
direction:3
鼠標懸停關閉
hoverStop:false
單行停頓
singleHeight:26
單行停頓時間
singleHeight:26
waitTime:2500
1、安裝
npm install vue-seamless-scroll --save
2、引入使用
局部 頁面使用:
import vueSeamlessScroll from "vue-seamless-scroll"; components: { vueSeamlessScroll, }, data(){ return { bbsData:[] } }, computed: { bbsOption () { return { step: 0.2, // 數值越大速度滾動越快 limitMoveNum: 3, // 開始無縫滾動的數據量 this.bbsData.length hoverStop: false, // 是否開啟鼠標懸停stop direction: 1, // 0向下 1向上 2向左 3向右 openWatch: true, // 開啟數據實時監控刷新dom singleHeight: 0, // 單步運動停止的高度(默認值0是無縫不停止的滾動) direction => 0/1 singleWidth: 0, // 單步運動停止的寬度(默認值0是無縫不停止的滾動) direction => 2/3 waitTime: 1000 // 單步運動停止的時間(默認值1000ms) } } }
全局main.js引入:
import vueSeamlessScroll from 'vue-seamless-scroll' Vue.use(vueSeamlessScroll)
主要代碼:
bbsData是接口獲取的數據綁定,根據自己綁定定義。
<div class="three-info mt40 bbsInfo" v-if="bbsData.length>0" @click.stop="handleBBs($event)"> <vue-seamless-scroll :data="bbsData" :class-option="bbsOption" > <ul class="ul-scoll"> <li v-for="item in bbsData" :key='item.topicId' class="info-item flex align-items"> <div class=" fontSize20 info-tag mr10 bbs-tag">論壇</div> <div class=" fontSize26 color3 van-ellipsis" style="flex:1" :data-id="item.topicId">{{item.topicTitle}}</div> </li> </ul> </vue-seamless-scroll> </div>
.three-info{ padding:0 20px 20px; border-radius: 10px; } .info-item{ padding-bottom:20px; padding-top:20px; border-bottom:1px solid #F1F6F8; } .info-item .info-tag{ width: 62px; padding:6px 10px; background: #3E91FF; color:#fff; text-align: center; border-radius: 6px; } .bbsInfo{ background:#FEFBE8; height:264px; overflow: hidden; } .info-item .bbs-tag{ background:#FAAF3D; }
到此這篇關於vue中使用vue-seamless-scroll插件無縫滾動的文章就介紹到這瞭,更多相關vue無縫滾動內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!