vue全屏滚动——vue-fullpage.js教程

vue-fullpage.js 用于创建类似幻灯片的全屏滚动效果。

官网地址  https://github.com/alvarotrigo/vue-fullpage.js

Demo演示  jQuery全屏滚动插件fullPage.js演示_dowebok

代码在线调试   https://codepen.io/alvarotrigo/pen/zpQmwq?editors=1000

目录

1. 安装

 2. 配置

 3. 使用

4. 调用 API

 完整范例代码


1. 安装

npm install --save vue-fullpage.js

 2. 配置

main.js中

// 全屏滚动 vue-fullpage.js
import 'fullpage.js/vendors/scrolloverflow';
import VueFullpage from 'vue-fullpage.js'
Vue.use(VueFullpage)

public/index.html 中的 <head></head>标签内

    <!--全屏滚动插件-vue-fullpage.js的样式-->
    <link rel="stylesheet" type="text/css" href="https://unpkg.com/fullpage.js/dist/fullpage.min.css">

 3. 使用

 .vue文件中,每个   <div class="section"></div> 为一页,其中的 <div class="slide"> </div>为横向子页

<template>
  <div>
    <full-page :options="options" ref="fullpage">
      <div class="section">
        <h3>vue-fullpage.js</h3>
      </div>
      <div class="section">
        <div class="slide">
          <h3>Slide 2.1</h3>
        </div>
        <div class="slide">
          <h3>Slide 2.2</h3>
        </div>
        <div class="slide">
          <h3>Slide 2.3</h3>
        </div>
      </div>
      <div class="section">
        <h3>Section 3</h3>
      </div>
    </full-page>
  </div>
</template>

options 配置

<script>
    export default {
        data() {
            return {
                options: {
                    licenseKey: "OPEN-SOURCE-GPLV3-LICENSE",
                    //是否显示导航,默认为false
                    navigation: true,
                    //为每个section设置背景色
                    sectionsColor: [
                        "#41b883",
                        "#ff5f45",
                        "#0798ec",
                        "#fec401",
                        "#1bcee6",
                        "#ee1a59",
                        "#2c3e4f",
                        "#ba5be9",
                        "#b4b8ab"
                    ],
                }
            }
        }
    }
</script>

其他options 配置

//导航小圆点的位置,left或者right,默认为right
navigationPosition: 'left',
//是否可以使用键盘方向键导航(上下键翻页),默认为true
keyboardScrolling: true,
//是否显示两侧的箭头
controlArrows: false,
//每一页幻灯片的内容是否垂直居中,默认为true
verticalCentered: true,
//字体是否随着窗口缩放而缩放 默认为true
resize: true,
//页面滚动速度
scrollingSpeed: 700,
//定义锚链接,用户可以快速打开定位到某一页面;不需要加"#",不要和页面中任意的id和name相同
anchors: ["page1", "page2", "page3"],
//是否锁定锚链接
lockAnchors: true,
//定义section页面的滚动方式,需要引入jquery.easings插件
easing:'',
//是否使用css3 transform来实现滚动效果
css3: false,
//滚动到最顶部后是否连续滚动到底部
loopTop: true,
//滚动到最底部后是否连续滚动到顶部
loopBottom: true,
//横向slide幻灯片是否循环滚动
loopHorizontal: false,
//是否循环滚动,不会出现跳动,效果很平滑
continuousVertical: true,
//是否使用插件滚动方式,设为false后,会出现浏览器自带的滚动条,将不会按页滚动
autoScrolling: false,
//是否包含滚动条,设为true,则浏览器自带的滚动条会出现,页面还是按页滚动,但是浏览器滚动条默认行为也有效
scrollBar: true,
//设置每个section顶部的padding,当我们要设置一个固定在顶部的菜单、导航、元素等时使用
paddingTop: "100px",
//设置每个section底部的padding,当我们要设置一个固定在底部的菜单、导航、元素等时使用
paddingBottom: "100px",
//固定的元素,为jquery选择器;可用于顶部导航等
fixedElements: ".nav",
//在移动设置中页面敏感性,最大为100,越大越难滑动
touchSensitivity: 5,
//设为false,则通过锚链接定位到某个页面不再有动画效果
animateAnchor: false,
//是否记录历史,可以通过浏览器的前进后退来导航
recordHistory: true,
//绑定菜单,设定相关属性和anchors的值对应后,菜单可以控制幻灯片滚动
menu: '.nav',
// 鼠标移动到小圆点上时显示出的提示信息
navigationTooltips: ["第一页","第二页","第三页"],
// 是否显示当前页面小圆点导航的提示信息,不需要鼠标移上
showActiveTooltip: true,
// 是否显示横向幻灯片的导航
slidesNavigation: true,
// 横向幻灯片导航的位置,可以为top或者bottom
slidesNavPosition: 'bottom',
// 内容超过满屏时是否显示滚动条,需要jquery.slimscroll插件
scrollOverflow: true,
// section选择器
sectionSelector: ".section",
// slide选择器
slideSelector: ".slide"

4. 调用 API

// 向下滚动一页
this.$refs.fullpage.api.moveSectionDown();

其他 API

// 向上滚动一页
moveSectionUp();
//向下滚动一页
moveSectionDown();
//滚动到第几页,第几个幻灯片;页面从1计算,幻灯片从0计算
moveTo(wection,slide);
//和moveTo一样,但是没有动画效果
silentMoveTo(section,slide);
//幻灯片向右滚动
moveSlideRight();
//幻灯片向左滚动
moveSlideLeft();
//动态设置autoScrolling配置项
setAutoScrolling(boolean);
//动态设置lockAnchors配置项
setLockAnchors(boolean);
//动态设置recordHistory配置项
setRecordHistory(boolean);
//动态设置scrollingSpeed配置项
setScrollingSpeed(milliseconds);
//添加或删除鼠标/滑动控制,第一个参数为启用、禁用;第二个参数为方向,取值包含all、up、dowm、left、right,可以使用多个,逗号分隔
setAllowScrolling(boolean,[directions]);
//销毁fullpage特效,不写type,fullpage给页面添加的样式和html元素还在;如果使用all,则样式和html等全部被销毁
destroy(type);
//重新更新页面和尺寸,用于通过ajax请求后改变了页面结构之后,重建效果
reBuild();

完整范例代码

<template>
    <div>
        <full-page :options="options" ref="fullpage">
            <div class="section">
                <div style="text-align: center">
                    <h1 style="color: white">小米手机拍照效果</h1>
                    <button @click="next">下一页</button>
                </div>
            </div>
            <div class="section">
                <div class="slide">
                    <div style="height: 100vh">
                        <img width="100%"
                             src="https://cdn.cnbj1.fds.api.mi-img.com/product-images/redminote9pro/section14-8.jpg"
                             alt="">
                    </div>
                </div>
                <div class="slide">
                    <div style="height: 100vh">
                        <img width="100%"
                             src="https://cdn.cnbj1.fds.api.mi-img.com/product-images/redminote9pro/section14-6.jpg"
                             alt="">
                    </div>
                </div>
                <div class="slide">
                    <div style="height: 100vh">
                        <img width="100%"
                             src="https://cdn.cnbj1.fds.api.mi-img.com/product-images/redminote9pro/section16-2.jpg"
                             alt="">
                    </div>
                </div>
            </div>
            <div class="section">
                <div class="box3">
                    <div style="height: 100vh">
                        <img height="100%"
                             src="https://cdn.cnbj1.fds.api.mi-img.com/product-images/redminote9pro/section11-1.jpg"
                             alt="">
                    </div>
                </div>
            </div>
        </full-page>
        <div>
        </div>
    </div>
</template>
<script>
    export default {
        data() {
            return {
                options: {
                    licenseKey: "OPEN-SOURCE-GPLV3-LICENSE",
                    //是否显示导航,默认为false
                    navigation: true,
                    //为每个section设置背景色
                    sectionsColor: [
                        "#41b883",
                        "#ff5f45",
                        "#0798ec",
                        "#fec401",
                        "#1bcee6",
                        "#ee1a59",
                        "#2c3e4f",
                        "#ba5be9",
                        "#b4b8ab"
                    ],
                }
            }
        },
        methods: {
            next() {
                // 向下滚动一页
                this.$refs.fullpage.api.moveSectionDown();
            }
        }
    }
</script>
  • 14
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝阳39

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值