网站建设知识
网站建设知识
您现在的位置:首页 » 优石资讯 » 网站建设知识

如何用 fullPage.js 创建全屏视差滚动单页

2017-07-06 17:11:18

使用fullPage.js,这个最受欢迎的单页滚动插件,利用其视差扩展(Parallax extension),在屏面背景上创建美妙的,甚至令人上瘾的视差效果:

如何用 fullPage.js 创建全屏视差滚动单页

我不知道你如何,但是,当我看到应用了这种效果的网站后,我都难以停止上上下下滑动页面!:) 真是太流畅了!

Fullpage.js可以免费无限制使用,视差扩展是需要付费的,请尊重开发作者的劳动成果,如果你有购买意图,可使用下面的优惠码获取折扣。

打造视差效果的过程很容易,我甚至都不知道是否该为此写文章一一赘述。
获取这一扩展也很容易,包括创建全屏视差单页网站,在 fullPage.js 初始化中使用parallax:true,并将该元素加入每一屏(section)的 fp-bg class中。
对于那些不熟悉 fullPage.js 或运用 Javascript 有些困难的人来说,以下是详解过程:

  • 购买此扩展,使用促销代码 4china,获取20%折扣!
  • 按照发送给你的电子邮件说明,为域名获得激活密钥(之后在fullPage.js初始化中需要用它)。请不要混淆许可证密钥与激活密钥,需要使用许可证密钥获取域名的激活密钥。
  • 选添视差扩展文件。
  • 使用fullPage.js扩展时,需要使用 fullpage.extensions.min.js 而不是 jquery.fullpage.js 或 jquery.fullpage.min.js,在此文档中详细说明了。
  • 按照此文档中的详细说明,创建屏(section)和页(slide)的结构。
  • 通过在每一页和屏中添加 <div class="fp-bg"></div>,创建视差背景元素。
  • 使用CSS,向每个 fp-bg 元素中添加背景。

例如,如果有这样的一个屏(section):

<div class="section" id="section2">
    <div class="slide" id="slide2-1">Slide 2.1</div>
    <div class="slide" id="slide2-2">Slide 2.2</div>
</div>

通过添加 fp-bg 元素,可以为每个水平页(slide)分配背景:

<div class="section" id="section2">
    <div class="slide" id="slide2-1">
        <div class="fp-bg"></div>
        Slide 2.1
    </div>
    <div class="slide" id="slide2-2">
        <div class="fp-bg"></div>
        Slide 2.2
    </div>
</div>

在样式表(stylesheet)中为它们添加背景,正如添加至屛和页一样:

#slide2-1 .fp-bg{
    background-image: url('demo.jpg');
    background-size: cover;
}
#slide2-2 .fp-bg{
    background-image: url('demo2.jpg');
    background-size: cover;
}
  • 然后, 如此文档中所述,初始化 fullPage.js,并添加选项 parallax:true.
  • 同时必须添加选项 parallaxKey,在扩展所需的每个注册域中,输入激活密钥。

这样就可以了,如此就有一个美妙的、令人惊喜的视差网站啦,以上所述都在 fullPage.js 文档 及视差功能文档中以英文详细说明了。

下面是最终的演示代码:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="../jquery.fullPage.css" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script type="text/javascript" src="../fullpage.parallax.js"></script>
    <script type="text/javascript" src="../jquery.fullpage.extensions.js"></script>

    <script type="text/javascript">
    $(document).ready(function() {
        $('#myContainer').fullpage({
            parallax: true
            //any other options you want to configure go here
        });
    });
    </script>

    <style>
        /*
        * Titles for each section
        */
        .section{
            text-align: center;
        }
        h1{
            font-size: 5em;
        }

        /*
        * Setting the backgrounds for each section / slide
        */
        .fp-bg{
            background-size: cover;
        }
        #section1 .fp-bg{
            background-image: url('imgs/bg3.jpg');
        }
        #slide2-1 .fp-bg{
            background-image: url('imgs/bg5.jpg');
        }
        #slide2-2 .fp-bg{
            background-image: url('imgs/bg1.jpg');
        }
        #slide2-3 .fp-bg{
            background-image: url('imgs/bg2.jpg');
        }
        #section3 .fp-bg{
            background-image: url('imgs/bg3.jpg');
        }
    </style>
</head>
<body>

<div id="myContainer">
    <div class="section" id="section1">
        <div class="fp-bg"></div>
        <h1>Section 1</h1>
    </div>
    <div class="section" id="section2">
        <div class="slide" id="slide2-1">
            <div class="fp-bg"></div>
            <h1>Section 2</h1>
        </div>
        <div class="slide" id="slide2-2">
            <div class="fp-bg"></div>
            <h1>Slide 2.2</h1>
        </div>
        <div class="slide" id="slide3-3">
             <div class="fp-bg"></div>
            <h1>Slide 2.3</h1>
        </div>
    </div>
    <div class="section" id="section3">
        <div class="fp-bg"></div>
        <h1>Section 3</h1></div>
    </div>
</div>

</body>
</html>

嘿!如果你是那种喜欢玩转设置的人,这儿还有更多。

配置视差效果

可以使用选项 parallaxOptions,进一步控制各种效果。
请在此文档中了解更多选项。在此,我做了一些简要概述:

  • type:(默认 reveal)可以将其设置为 cover 或 reveal。它控制当前屏在最终屏的上方或下方。如果选择覆盖(cover),下一屏或页会覆盖一部分当前屏或页;选择露出(reveal),则呈反转效果,当前屏或页会覆盖下一屏或页。
  • percentage: (默认值 62)定义了相对于视口的视差效果比率(percentage)。较小的值将具较弱的视差效果;最大值为100,将显示完全静态的背景。
  • property: (默认 translate)建议使用此选项的默认值。它定义是否要对 fp-bg 元素应用视差效果,或者只将它应用于屏或页的背景属性。
    建议使用默认值的原因是因为使用 fp-bg 元素提供了更好的性能,利用translate3d 硬件加速。这个选项提供给那些,由于某些特定原因,不想在每个屏或页中添加额外的 fp-bg 元素,或不能修改 HTML 标记的开发者。

如何运用这些选项?简单得很:

$('#myContainer').fullpage({
    parallax: true
    parallaxOptions:{
        type: 'cover',
        percentage: 50
    }
});

如何将视差背景仅应用于特定屏?

这依旧很容易。不要在该屏中添加 fp-bg 元素,就可以了。
但是,当 property 为 background 时,就不可以了。不过也没有什么可担心的,不是么?正如我所说的,我一项建议使用默认选项:translate。:)

本文来源于宜昌网站建设公司与宜昌网站制作公司宜昌优石品牌设计有限公司 宜昌优石设计为你提供:品牌网站建设,品牌网站制作,宜昌网站制作、宜昌网站制作公司、宜昌网站建设、宜昌网站建设公司、宜昌网站设计、宜昌网站设计公司