中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue滾動插件better-scroll使用詳解

發布時間:2020-09-09 16:26:38 來源:腳本之家 閱讀:228 作者:ajuan 欄目:web開發

本文實例為大家分享了vue滾動插件better-scroll的具體代碼,供大家參考,具體內容如下

1. 概述

1.1 說明

better-scroll是一款重點解決移動端(已支持PC)各種滾動場景需求的插件。例如淘寶聚劃算中的類型選擇(女裝/家紡/生鮮美食等),沒有滾動條顯示卻實現了滾動功能。

1.2 better-scroll安裝

npm install better-scroll --save 安裝至項目中

1.3 better-scroll使用

better-scroll常見應用場景(列表滾動)的html結構:

<div class="wrapper">
 <ul class="content">
 <li>...</li>
 <li>...</li>
 ...
 </ul>
 <!-- 這里可以放一些其它的 DOM,但不會影響滾動 -->
</div>

備注:better-scroll是作用在外層wrapper容器上的,滾動的部分是content元素。并且better-scroll只處理容器(wrapper)的第一個子元素(content)的滾動,其他的元素都會被忽略。

better-scroll初始化代碼:

better-scroll提供了一個類,實例化的第一個參數是一個原生的DOM對象,如果不是傳遞的對象,而是傳遞的字符串(類名或者id),better-scroll內部會嘗試調用querySelector去獲取這個DOM對象。

<->直接傳遞DOM對象

import BScroll from 'better-scroll'
let wrapper = document.querySelector('.wrapper')
let scroll = new BScroll(wrapper)

<二>傳遞字符串,使better-scroll內部去獲取DOM對象

import BScroll from 'better-scroll'
let scroll = new BScroll('.wrapper')

2. 代碼

2.1 代碼示例

2.1 子組件scrollChild(橫向滾動組件)

<template>
 <div class='move-tabs'>
 <div class='tabs-wrapper' ref='tabsWrapper'>
  <ul ref='tab'>
  <li v-for='(item, index) in tabs' :key='index'>
   <div class='tab-item'>
   <div class='expand-block'>
    {{item.name||'無'}}
   </div>
   </div>
  </li>
  </ul>
 </div>
 </div>
</template>
<script>
 import BScroll from 'better-scroll'

 export default {
 props: {
  data: Array,
 },
 data() {
  return {
  tabs: [],
  mX: 0,
  tabWidth: 300,
  }
 },
 mounted() {
  this.$nextTick(() => {
  console.log(this.data)
  this.tabs = this.data
  this._initMenu()
  })
 },
 methods: {
  _initMenu() {
  const tabsWidth = this.tabWidth
  const width = this.tabs.length * tabsWidth
  this.$refs.tab.style.width = `${width}px`
  this.$nextTick(() => {
   if (!this.scroll) {
   this.scroll = new BScroll(this.$refs.tabsWrapper, {
    scrollX: true,
    eventPassthrough: 'vertical',
   })
   } else {
   this.scroll.refresh()
   }
  })
  },
 },
 }
</script>
<style scoped>
 .move-tabs {
 position: relative;
 top: 0;
 bottom: 0;
 width: 100%;
 }
 .tabs-wrapper {
 height: 120px;
 width: 100%;
 box-sizing: border-box;
 overflow: hidden;
 white-space: nowrap;
 }
 .tab-item {
 float: left;
 width: 280px;
 height: 120px;
 padding: 10px;
 margin-right: 20px;
 background: #f5f5;
 box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);
 border-radius: 4px;
 }
 .expand-block {
 font-size: 30px;
 font-weight: bold;
 color: #333333;
 }
</style>

2.1 父組件scrollParent(調用子組件)

<template>
<div>
 <child-scroll :data='scrollList' />
</div>
</template>

<script>
 import ChildScroll from '../components/scrollChild'
 export default {
 name: "scrollParent.vue",
 components: {
  ChildScroll,
 },
 data(){
  return {
  scrollList:[
   {name:'北京'},
   {name:'上海'},
   {name:'杭州'},
   {name:'廣州'},
   {name:'鄭州'},
   {name:'深圳'},
   {name:'合肥'},
   {name:'徐州'},
   {name:'西安'},
   {name:'石家莊'},
   {name:'呼和浩特'},
   {name:'蘭州'},
   {name:'包頭'},
   {name:'重慶'},
  ]
  }
 },
 }
</script>

<style scoped>

</style>

2.2 結果展示

可左右滑動出所需要展示的列表集合

vue滾動插件better-scroll使用詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤岗市| 黑水县| 汝阳县| 星子县| 卢龙县| 乌拉特中旗| 衢州市| 元氏县| 都安| 垣曲县| 同心县| 新宁县| 宜兴市| 庆阳市| 如皋市| 肇庆市| 临西县| 安吉县| 元阳县| 育儿| 和龙市| 定日县| 宜兰市| 象山县| 乾安县| 石城县| 克东县| 澎湖县| 伊通| 柳州市| 珠海市| 砀山县| 岑溪市| 界首市| 苗栗县| 峨眉山市| 偃师市| 五常市| 民丰县| 东乡县| 安塞县|