基于 vue 的单页滚动插件

vue-fullpage

基于vue的fullpage.js

功能概述

可实现移动端的单页滚动效果,支持横向滚动和纵向滚动

兼容性

目前还未进行大规模兼容性测试。有bug请提问至issues

安装

npm install vue-fullpage --saveinstall vue-fullpage --save
commonjs
import VueFullpage from 'vue-fullpage'
Vue.use(VueFullpage) VueFullpage from 'vue-fullpage'
Vue.use(VueFullpage)

var vueFullpage = require('vue-fullpage')
Vue.use(vueFullpage) vueFullpage = require('vue-fullpage')
Vue.use(vueFullpage)

文档

api文档

快速上手

main.js

在main.js需要引入该插件的css和js文件

import VueFullpage from 'vue-fullpage'
Vue.use(VueFullpage) VueFullpage from 'vue-fullpage'
Vue.use(VueFullpage)
app.vue

模板部分:在 page-container 容器加入 v-cover 指令防止闪烁 在 page-wp 容器上加 v-page指令,指令值是 fullpage 的配置

<div class="page-container">
  <div v-page="opts" class="page-wp">
    <div class="page page1">
      <p class="part part1" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page2">
      <p class="part part2" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page3">
      <p class="part part3" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page4">
      <p class="part part4" v-animate="'fadeIn'">
        vue-fullpage
      </p>
    </div>
  </div>
</div>class="page-container">
  <div v-page="opts" class="page-wp">
    <div class="page page1">
      <p class="part part1" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page2">
      <p class="part part2" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page3">
      <p class="part part3" v-animate="'slideIn'">
        vue-fullpage
      </p>
    </div>
    <div class="page page4">
      <p class="part part4" v-animate="'fadeIn'">
        vue-fullpage
      </p>
    </div>
  </div>
</div>

js部分:提供 vue-fullpage 的自定义指令

<script>
export default {
  data () {
    return {
      opts: {
        start: 0,
        dir: 'v',
        loop: false,
        duration: 500,
        stopPageScroll: true,
        beforeChange: function (prev, next) {
        },
        afterChange: function (prev, next) {
        }
      }
    }
  }
}
</script>script>
export default {
  data () {
    return {
      opts: {
        start: 0,
        dir: 'v',
        loop: false,
        duration: 500,
        stopPageScroll: true,
        beforeChange: function (prev, next) {
        },
        afterChange: function (prev, next) {
        }
      }
    }
  }
}
</script>

css部分: page-container 需要固定宽度和高度, fullpage 会使用父元素的宽度和高度。

如下设置可使滚动页面充满全屏

<style>
.page-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
</style>style>
.page-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
</style>

demo

地址:

请使用chrome的手机模拟器或手机浏览器访问

http://vue.wendaosanshou.top/vue_fullpage_demo/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值