官网:https://alvarotrigo.com/fullPage/zh
github:https://github.com/alvarotrigo/fullPage.js
react 官方封装:@fullpage/react-fullpage

有的网页每次滚动就是一屏,fullPage.js 就是制作这种效果的一个 JS 库。
通过调用本库可轻易创建全屏滚动网站(也称为单页网站)。 本库可创建全屏滚动网站,同时也可在网站中添加横向滚动条。(商用是付费的,淘宝上有破解版)

特点

  • fullPage.js易于使用,可自定义
  • 包含数十个例子,出色的文档,可社区和个人
  • 专为手机和平板电脑设计,完全响应

简介:https://madewith.cn/84
示例:https://alvarotrigo.com/react-fullpage/?from=madewith.cn

效果

一屏滚动.gif

安装

  1. npm install @fullpage/react-fullpage

index.jsx

  1. import React from 'react';
  2. import ReactFullpage from '@fullpage/react-fullpage';
  3. import styles from './index.less';
  4. const MySection = (props) => {
  5. return (
  6. <div className="section">
  7. <h3>{props.children}</h3>
  8. </div>
  9. );
  10. };
  11. const anchors = ["firstPage", "secondPage", "thirdPage"];
  12. const FullPage = () => {
  13. return (
  14. <div className={styles['full-page']}>
  15. <ReactFullpage
  16. anchors={anchors}
  17. navigation
  18. navigationTooltips={anchors}
  19. sectionsColor={["#282c34", "#ff5f45", "#0798ec"]}
  20. onLeave={(origin, destination, direction) => {
  21. console.log("onLeave event", { origin, destination, direction });
  22. }}
  23. render={({ state, fullpageApi }) => {
  24. return (
  25. <div>
  26. {
  27. ['向下滑动!', '继续下滑!', '向上滑动!'].map((item, index) => (
  28. <MySection key={index}>{item}</MySection>
  29. ))
  30. }
  31. </div>
  32. );
  33. }}
  34. />
  35. </div>
  36. );
  37. };
  38. export default FullPage;

index.less

  1. .full-page {
  2. :global {
  3. h3 {
  4. font-size: 30px;
  5. text-align: center;
  6. color: #fff;
  7. font-weight: 700;
  8. }
  9. #section1 {
  10. color: #fff;
  11. }
  12. .fp-section {
  13. text-align: center;
  14. }
  15. }
  16. }