兼容PC、移动端(微信公众号) vue全屏滚动组件 支持vue2和vue3

mv-full-page

兼容PC、移动端(微信公众号) 全屏滚动组件

喜欢的帮忙给个 star, 只要有时间就更新和优化

npm version downloads Jsdelivr Hits

star star
其他版本

Vue2版本请移步2.0分支

演示

Demo

安装

npm i mv-full-page@next

yarn add mv-full-page@next

全局注册

import { createApp } from 'vue';
import MvFullPage from 'mv-full-page'
import 'mv-full-page/dist-lib/style.css'

const app = createApp();

app.use(MvFullPage);

局部注册

import { defineComponent } from "vue";
import MvFullPage from 'mv-full-page'
import 'mv-full-page/dist-lib/style.css'

export default defineComponent({
    components:{
        MvFullPage
    }
});

示例代码

基本使用

跳转

动态插槽

   <mv-full-page   
    :pages="list.length"
    :v-model:page="page" 
    >
      <!-- 动态插槽 -->
      <template
        v-slot:[dynamicSlotName+(index+1)]
        v-for="(item, index) in list"
      >
        <div :class="`page${index + 1}`" :key="index">
          {{ `页面${JSON.stringify(item)}` }}
        </div>
      </template>
    </mv-full-page>

功能点

  • 移动端触摸滑动

  • pc端鼠标滚轮切换

  • 支持页面缓存

  • 解决 ios 滑动页面回弹

  • 支持滚动方向切换

  • 支持局部滚动(处理了微信公众号局部元素滚动回弹的问题)

  • 支持自定义滚动容器定位方式和容器大小

  • 指示器切换页面

  • 支持自定义过渡动画速度

  • 支持响应式窗口大小改变

  • 支持动态插槽

  • 支持 typescript

Props

name类型默认值备注
pagesNumber1页面总数
page: v-model:pageNumber1当前页面
configObject-详情见配置

配置

{
        /**
         * 定位模式
         */
        position: "fixed",
        /**
         * 自定义容器宽度
         */
        width: "100%",
        /**
         * 自定义容器高度
         */
        height: "100%",
        /**
         *  v => 垂直方向 , h => 水平方向
         */
        direction: "h",
        /**
         * 指示器
         */
        poi: {
          /**
           * 显示指示器
           */
          pointer: true,
          /**
           * 指示器位置
           */
          position: "right",
          /**
           * 指示器类名
           */
          className: ""
        },
        /**
         * 缓存页面
         */
        cache: true,
        /**
         * 页面背景数组
         * 示例格式: [{ color:'pink' },{ image:'https://xxx.png' }]
         */
        bgArr: [],
        /**
         * 自定义过渡动画
         */
        transition: {
          duration: "1000ms", // 动画时长
          timingFun: "ease", // 动画速度曲线
          delay: "0s", // 动画延迟
        },
        // 自动播放
        autoPlay: false,
        //  循环播放
        loop: false,
        // 切换间隔
        interval: 1000,
        arrow: {
          // 上一页箭头
          last: false,
          // 下一页箭头
          next: false,
        },
}

Events

name说明回调参数
rollEnd滚动页面后触发(page:滚动后的页码)
pointerMouseover指示器mouseover事件和指示器索引({event:事件,index:指示器对应索引})

局部滚动 div

name类型默认值备注
data-scrollBooleanfalse局部滚动一定要在滚动容器添加这个属性 <div data-scroll="true"></div>

Browsers support

IE / EdgeEdgeFirefoxFirefoxChromeChromeSafariSafari
Edgelast 2 versionslast 2 versionslast 2 versions
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值