Home > Article > Web Front-end > Implement full-screen scrolling effect based on jquery_javascript skills
So today I will introduce this fullPage, which is different from fullPage.js. Fullpage has better compatibility and is downward compatible with IE6. It does not rely on any js library and can be used independently. Although it is not as powerful as fullPage.js in terms of functionality, it is sufficient for general use, especially its animation effects. You can freely set scaling and rotation to produce various animation effects. It also supports horizontal scrolling that fullPage.js does not have.
Before introducing it, let’s take a look at the operation renderings:
Introduce the core library, pagefull depends on any JS library, so you only need to introduce it itself
<script src="js/fullPage.min.js"></script>
Write html
//请在head区加入以下代码,移动端使用 <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> <!--[if lte IE 7]> <body scroll="no"> <![endif]--> <!--[if gt IE 7]><!--> <body> <!--<![endif]--> <div id="pageContain"> <div class="page page1 current"> <div class="contain"> </div> </div> <div class="page page2"> <div class="contain"> </div> </div> <div class="page page3" data-step="4"> <div class="contain"> <p class="demo-data-step">data-step可以让你在不切屏的情况下更换动画</p> </div> </div> <div class="page page4"> <div class="contain"> </div> </div> <div class="page page5"> <div class="contain"> </div> </div> <div class="page page6"> <div class="contain"> </div> </div> </div> <ul id="navBar"> <li>0</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </body>
Write CSS. Friends who are not familiar with CSS3, please go back and make up for it. I will not analyze it here. CSS can be freely defined according to the needs of the project.
html { -ms-touch-action: none; /* 阻止windows Phone 的默认触摸事件 */ } body, div, p { margin: 0; padding: 0; } ul { list-style: none; } body { width: 100%; *cursor: default; overflow: hidden; font: 16px/1.5 "Microsoft YaHei",Helvetica,STHeiti STXihei,Microsoft JhengHei,Arial; } #pageContain { overflow: hidden; } .page { display: none; width: 100%; height: 100%; overflow: hidden; position: absolute; top: 0; left: 0; } .contain { width: 100%; height: 100%; display: none; position: relative; z-index: 0; } .current .contain,.slide .contain { display: block; } .current { display: block; z-index: 1; } .slide { display: block; z-index: 2; } .swipe { display: block; z-index: 3; transition-duration: 0ms !important; -webkit-transition-duration: 0ms !important; } .page1 { background: #37c1e3; } .page2 { background: #009922; } .page3 { background: #992211; } .page4 { background: #ff00ff; } .page5 { background: #00ff00; } .page6 { background: #22ffff; } #navBar { z-index: 3; position: absolute; top: 10%; right: 3%; } #navBar .active { background: #ccc; } #navBar li { cursor: pointer; margin-bottom: 10px; transition: all .7s ease; border-radius: 50%; line-height: 40px; text-align: center; width: 40px; height: 40px; } p { width: 200px; height: 100px; color:#fff; text-align: center; position: absolute; left: 50%; top: 50%; margin-left: -100px; margin-top: -50px; opacity: 1; transition: all .8s ease; transform-origin: 50% 50%; } .step1 p { transform: translate(0, -50px); -webkit-transform: translate(0, -50px); } .step2 p { opacity: 0; transform: scale(2); -webkit-transform: scale(2); } .step3 p { transform: scale(1); -webkit-transform: scale(1) opacity: 1; } .step4 p { -webkit-transform: rotate(360deg) translate(0,-200px) scale(.3); transform: rotate(360deg) translate(0,-200px) scale(.3); opacity: 0; }
Write JS to achieve the effect
var runPage; runPage = new FullPage({ id : 'pageContain', // 容器id slideTime : 800, // 每页切换时间,单位为毫秒 continuous : false, // 是否循环(即能从最后页跳到第一页面) effect : { // 滚动效果 transform : { translate : 'Y', // 'X'|'Y'|'XY'|'none' X轴|Y轴|XY轴|无 scale : [.1, 1], // [scalefrom, scaleto] [起始缩放比例, 结束时缩放比例] rotate : [0, 0] // [rotatefrom, rotateto] [起始旋转角度, 结束时旋转角度] }, opacity : [0, 1] // [opacityfrom, opacityto][起始透明度, 结束时透明度] }, mode : 'wheel,touch,nav:navBar', // 转换模式 'wheel,touch,nav:navBar' 表示 '滚轮,触摸,导航条:导航条id' easing : 'ease' // easing('ease','ease-in','ease-in-out' 或使用贝塞尔曲线 [.33, 1.81, 1, 1]; // ,onSwipeStart : function(index, thisPage) { // 触摸开始时的回调函数 // return 'stop'; // } // ,beforeChange : function(index, thisPage) { // 滑动开始时的回调函数 // return 'stop'; // } // ,callback : function(index, thisPage) { // 滑动结束后的回调函数 // alert(index); // }; });
Detailed parameter settings
id String – outer package id
slideTime Integer (default:800) – page switching time (milliseconds)
effect Object (default:{}) – Effect parameters
mode String (default:'') - Conversion mode 'wheel,touch,nav:navBar' means 'wheel, touch, navbar:navbarid'
callback Function – callback function after sliding ends
Interface
Fullpage also provides some excuses for developers using this plugin to call:
prev() Slide directly to the previous page
next() Slide directly to the next page
thisPage() Returns the current page number
go(num) Slide directly to page num
The above is about achieving a full-screen scrolling effect similar to NetEase mailbox. I hope you can create a full-screen scrolling effect suitable for your own website.