Slide

优质
小牛编辑
125浏览
2023-12-01

轮播图,提供了常见的轮播swipe 的功能,也是一个基于 better-scroll 进行封装的组件。

示例

  • 基本使用

    考虑到 cube-slide 最常用的场景,每个轮播页是一个可跳转链接的图片,所以我们提供的最简便的用法是,通过 data 属性传入一个包含图片和跳转链接信息的数组,我们会默认将其渲染成一组超链接图片的轮播图。

    <cube-slide :data="items"/>
    
    export default {
      data() {
        return {
          items: [
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide01.png'
            },
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide02.png'
            },
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide03.png'
            }
          ]
        }
      }
    }
    
  • 自定义内容

    当然我们也支持自定义内容,使用默认插槽和 cube-slide-item 就可以自定义每个轮播页的结构。其中,cube-slide 元素即整个轮播图组件,cube-slide-item 元素则是每一个轮播的页面,其 slot 为该页的内容。

    <cube-slide ref="slide" :data="items" @change="changePage">
      <cube-slide-item v-for="(item, index) in items" :key="index" @click.native="clickHandler(item, index)">
        <a :href="item.url">
          <img :src="item.image">
        </a>
      </cube-slide-item>
    </cube-slide>
    
    export default {
      data() {
        return {
          items: [
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide01.png'
            },
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide02.png'
            },
            {
              url: 'http://www.didichuxing.com/',
              image: '//webapp.didistatic.com/static/webapp/shield/cube-ui-examples-slide03.png'
            }
          ]
        }
      },
      methods: {
        changePage(current) {
          console.log('当前轮播图序号为:' + current)
        },
        clickHandler(item, index) {
          console.log(item, index)
        }
      }
    }
    

    虽然你使用了自定义内容以后,我们不会用 data 生成默认内容,但依然建议你将数据传入 data 属性,因为只有这样,我们组件内部才能帮你自动进行数据监听和重新渲染,否则你可能会需要自己调用 refresh 方法重新渲染,比如这样 this.$refs.slide.refresh()

  • 初始索引

    初始化时展示的位置索引值,默认为 0。

    <cube-slide :initial-index="1"></cube-slide>
    
  • 循环播放

    默认开启循环播放,可通过 loop 属性配置。

    <cube-slide :loop="false"></cube-slide>
    
  • 自动播放

    默认开启自动播放,可通过 auto-play 属性配置。

    <cube-slide :auto-play="false"></cube-slide>
    
  • 自动播放的时间间隔

    当开启了自动播放时,还可通过 interval 属性配置时间间隔。

    <cube-slide :interval="4000"></cube-slide>
    
  • 切换页面的滑动阈值

    可通过 threshold 属性配置切换页面的滑动阈值,既当滑动的距离超过了页面宽度 × threshold时,切换页面。默认值为0.3。

    <cube-slide :threshold="0.4"></cube-slide>
    
  • 切换页面的速度

    默认切换动画耗时为400ms,可通过 speed 属性配置。

    <cube-slide :speed="200"></cube-slide>
    
  • 允许纵向滚动

    默认在 Slide 区域的时候,竖向是不能滚动的,如果想要竖向可以滚动,可以设置 allowVerticaltrue

    <cube-slide :allow-vertical="true"></cube-slide>
    
  • 修改 dots 内容

    默认是点,可通过插槽修改。

    <cube-slide>
      <template slot="dots" slot-scope="props">
        <span class="my-dot" :class="{active: props.current === index}" v-for="(item, index) in props.dots">{{index + 1}}</span>
      </template>
    </cube-slide>
    

    作用域插槽提供了所需的当前索引值 current 以及长度 dots

  • 实时派发滚动的距离1.10.0

    <cube-slide :options="options" @scroll="scroll"></cube-slide>
    
      export default {
        data() {
          return {
            options: {
              listenScroll: true,
              probeType: 3
            }
          }
        },
        methods: {
          scroll ({x, y}) {
            console.log(x, y)
          }
        }
      }
    

Props 配置

参数说明类型可选值默认值
data用于 side-item 列表渲染的数据,当需要使用内置的默认内容,或者让组件自动监听数据变化重新渲染时,此参数必传Array-[]
initialIndex初始索引值Number-0
loop是否循环播放Booleantrue/falsetrue
showDots是否显示轮播指示点Booleantrue/falsetrue
autoPlay是否自动播放Booleantrue/falsetrue
interval播放间隔Number-4000
direction轮播方向Stringhorizontal/verticalhorizontal
options1.9.0better-scroll 配置项,具体请参考BS 官方文档Object-{
momentum: false,
click: true,
observeDOM: false
}
threshold切换页面的滑动阈值Number(0, 1)0.3
speed切换页面的速度Number-400
allowVertical是否允许竖向滚动。即将废弃,推荐使用 options 属性Booleantrue/falsefalse
stopPropagation是否阻止事件冒泡,可用于解决嵌套同方向slide时会遇到的事件冒泡问题。即将废弃,推荐使用 options 属性Booleantrue/falsefalse
refreshResetCurrent1.10.10当刷新时是否重置索引Booleantrue/falsetrue

插槽

名字说明作用域参数
default默认内容,由 cube-slide-item 构成-
dotsdots 内容dots: 轮播项长度
current: 当前索引

事件

事件名说明参数
changeSlide 页面切换时触发当前页面的索引值
scroll1.10.0滚动中实时派发Object {x, y} -滚动位置的坐标值
scroll-end1.9.0在滚动结束时触发当前页面的索引值

实例方法

方法名说明
refresh当轮播图内容删减的时候,可以调用此方法进行更新,重新渲染

最后更新:

类似资料

  • 值的立方体只是值与自身相乘的三倍。 For example, 2的立方体是(2 * 2 * 2)= 8。 算法 (Algorithm) 该程序的算法简单易行 - START Step 1 → Take integer variable A Step 2 → Multiply A three times Step 3 → Display result as Cube STOP 伪

  • Cube 是一个开源的基于 MongoDB 的数据分析工具 Cube 的收集器接收事件并将这些事件保持在 MongoDB 中。你可通过 UDP、HTTP POST 或者 WebSockets 来发送事件。同时 Cube 内置支持接受来自 collectd 的事件。

  • 在前面的章节中,我们已经看到了如何绘制三角形并旋转它。 现在,在本章中,您可以了解如何使用3D立方体,如何旋转它,如何在其上附加图像。 同样,本章提供了绘制3D立方体并为其应用颜色并将图像附加到其上的示例。 下面给出了绘制三维立方体并为其应用颜色的程序。 import java.awt.DisplayMode; import javax.media.opengl.GL2; import javax

  • 找到给定数字是偶数或奇数,是一个经典的C程序。 我们将在C中学习使用条件语句if-else 。 算法 (Algorithm) 这个程序的算法很简单 - START Step 1 → Take integer variable A Step 2 → Assign value to the variable Step 3 → Perform A modulo 2 and check

  • cube-flowable 工作流引擎旨在打造一套零代码、领先、且快速实用的引擎工具,助力开发者在面对工作流开发任务时,除去学习工作流框架知识和API的学习成本且不去关心工作流是什么技术,无需了解学习,安装使用cube-flowable工作流引擎并应用落地。 此工作流引擎是零代码或低代码的工作流引擎,安装配置开箱即可使用,完全适用于中国国情的工作流引擎。主要特点包括: 在线拖拽可视化业务表单,并自

  • cube-ui 是由滴滴开源的基于 Vue.js 实现的移动端组件库。 功能特性 质量可靠 由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。 体验极致 以迅速响应、动画流畅、接近原生为目标,在交互体验方面追求极致。 标准规范 遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。 扩展性强 支持按需引入和后