那麼今天就來介紹這款fullPage,與fullPage.js是不同的,fullpage兼容性更佳,能向下兼容到IE6, 不依賴任何 js 庫,可獨立使用。功能上雖然不如 fullPage.js 強大,但一般使用已經足夠了,尤其是它的動畫效果,你可以自由設定縮放、旋轉以產生各種各樣的動畫效果。同時它還支持 fullPage.js 所沒有的水平滾動。
再介紹之前先看一看運行效果圖:
引入核心庫,pagefull的依賴任何JS庫,所以只需引入它本身就可以了
<script src="js/fullPage.min.js"></script>
寫入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>
寫入CSS,不熟悉CSS3的朋友請回去補下,這裡不做解析了,CSS可以根據項目的需求自由的定義。
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; }
寫入JS,實現效果
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); // }; });
詳細參數設置
id String – 外層包裹id
slideTime Integer (default:800) – 每頁切換時間(毫秒)
effect Object (default:{}) – 效果參數
mode String (default:'') – 轉換模式 'wheel,touch,nav:navBar' 表示 '滾輪,觸摸,導航條:導航條id'
callback Function – 滑動結束後的回調函數
接口
Fullpage也提供了一些借口供使用此插件的開發者調用:
prev() 直接滑向上一頁
next() 直接滑入下一頁
thisPage() 返回當前的頁碼
go(num) 直接滑到第num頁
以上就是關於實現類似網易郵箱全屏滾動的效果,希望大家可以制作一個適合於自己網站的全屏滾動效果。