视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
fullpage.js的滚屏方式
2020-11-27 19:58:26 责编:小采
文档
这次给大家带来fullpage.js的滚屏方式,实现fullpage.js的滚屏注意事项有哪些,下面就是实战案例,一起来看一下。

这两天公司网页改版用到fullpage.js这个滚屏插件,页面内容整屏的滚动,不成问题,各种设置在网上也都有文档。
而我遇到的问题就是,页面内容不满屏的时候,和上面的内容放一块就太挤,单独放一屏就太空,好尴尬的说

底部的footer部分就是我要单独处理的部分,从网上搜了各种资料,总结了一下,个人觉着最简单的方法,写一篇文章以便以后查阅。

 <!--footer及倒数第二屏的HTML-->
 <body data-spy="scroll">
 <p id="dowebok" class="container-fluid">
 <p class="section" id="nextS">
 <p class="sect ">
 <p class="sectcenter4"></p>
 </p>
 <p class="sect sectbg2">
 <p class="container">
 <p class="sectcenter5"></p>
 </p>
 </p>
 </p>
 <p class="section footerss"><footer class="footer" id="footer"></footer></p>
 </p>
 </body>
 //初始化滚屏的一些内容,最重要的是设置好锚点,这里重点是最后一屏(footer)的锚点footerl
 $('#dowebok').fullpage({
 verticalCentered: false,
 resize: true,
 navigation: true,
 anchors: ['section-1', 'section-2', 'lastScreen','footerl'],
 });

写完这些,实现的就是下面如图的效果,整个footer占了一屏,并且是垂直居中显示的。

根据要实现的效果,要做的就是让footer紧挨着#nextS这一屏(不垂直居中)+到#nextS这一屏的时候,再往下的滚动距离就不能是一屏了(必须是footer的高度)。
按着整个思路,先解决css的问题

.section.footerss .fp-tableCell{//修改最后一屏display属性
 display: block!important;
 }
//实现footer紧挨着#nextS这一屏显示,底部出现

下面修改fullpage.js的问题,在引用的fullpage.js文件中找到performMovement这个方法,按照如下方法,修改一下,就可以达到想要的效果(footer紧挨着上一屏,并且滚动的高度是footer的height)

function performMovement(v){ 
   // using CSS3 translate functionality 
    if (options.css3 && options.autoScrolling && !options.scrollBar) { 
     if (v.anchorLink == 'footerl'){ //当滚屏到最后一屏时间 
       footer_a = $('#nextS').height();//倒数第二屏的高度 
       footer_h = $('#footer').height(); //footer的高度
        var translate3d = 'translate3d(0px, -' + (v.dtop - footer_a + footer_h) + 'px, 0px)'; 
      }else{ 
       var translate3d = 'translate3d(0px, -' + v.dtop + 'px, 0px)'; 
     } 
     transformContainer(translate3d, true); 
     setTimeout(function () { 
       afterSectionLoads(v); 
     }, options.scrollingSpeed); 
   } 
   // using jQuery animate 
   else{ 
     var scrollSettings = getScrollSettings(v); 
     $(scrollSettings.element).animate( 
       scrollSettings.options 
       , options.scrollingSpeed, options.easing).promise().done(function () { //only one single callback in case of animating `html, body` 
       afterSectionLoads(v); 
      }); 
   } 
 }

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

npm install安装失败怎样解决

Vue枚举类型实现HTML

下载本文
显示全文
专题