在很多情況下,我們需要頁面的全屏滾動,尤其是移動端。今天簡要的介紹一下全屏滾動的知識。
一.全屏滾動的原理
1.js動態獲取屏幕的高度。
獲取屏幕的高度,設置每一屏幕的高度。
2.監聽mousewheel事件。
監聽mousewheel事件,并判斷滾輪的方向,向上或向下滾動一屏。
二.jQuery插件fullpages介紹
fullPage.js 是一個基于 jQuery 的插件,它能夠很方便、很輕松的制作出全屏網站,主要功能有:
使用方法
1、引入文件
<link rel="stylesheet" > <script src="http://www.gimoo.net/t/1904/js/jquery.min.js"></script> <script src="http://www.gimoo.net/t/1904/js/jquery.fullPage.js"></script>
2、HTML
<div id="dowebok"> <div class="section"> <h3>第一屏</h3> </div> <div class="section"> <h3>第二屏</h3> </div> <div class="section"> <h3>第三屏</h3> </div> <div class="section"> <h3>第四屏</h3> </div> </div>
每個 section 代表一屏,默認顯示“第一屏”,如果要指定加載頁面時顯示的“屏幕”,可以在對應的 section 加上class=”active”,如:
<div class="section active">第三屏</div>
同時,可以在 section 內加入 slide(左右滑動),如:
<div id="fullpages"> <div class="section">第一屏</div> <div class="section">第二屏</div> <div class="section"> <div class="slide">第三屏的第一屏</div> <div class="slide">第三屏的第二屏</div> <div class="slide">第三屏的第三屏</div> <div class="slide">第三屏的第四屏</div> </div> <div class="section">第四屏</div> </div>
3、JavaScript
$(function(){ $('#fullpages').fullpage(); });
可以進行跟多的配置:
$(document).ready(function() { $('#fullpages').fullpage({ //Navigation menu: '#menu', lockAnchors: false, anchors:['firstPage', 'secondPage'], navigation: false, navigationPosition: 'right', navigationTooltips: ['firstSlide', 'secondSlide'], showActiveTooltip: false, slidesNavigation: true, slidesNavPosition: 'bottom', //Scrolling css3: true, scrollingSpeed: 700, autoScrolling: true, fitToSection: true, fitToSectionDelay: 1000, scrollBar: false, easing: 'easeInOutCubic', easingcss3: 'ease', loopBottom: false, loopTop: false, loopHorizontal: true, continuousVertical: false, normalScrollElements: '#element1, .element2', scrollOverflow: false, touchSensitivity: 15, normalScrollElementTouchThreshold: 5, //Accessibility keyboardScrolling: true, animateAnchor: true, recordHistory: true, //Design controlArrows: true, verticalCentered: true, resize : false, sectionsColor : ['#ccc', '#fff'], paddingTop: '3em', paddingBottom: '10px', fixedElements: '#header, .footer', responsiveWidth: 0, responsiveHeight: 0, //Custom selectors sectionSelector: '.section', slideSelector: '.slide', //events onLeave: function(index, nextIndex, direction){}, afterLoad: function(anchorLink, index){}, afterRender: function(){}, afterResize: function(){}, afterSlideLoad: function(anchorLink, index, slideAnchor, slideIndex){}, onSlideLeave: function(anchorLink, index, slideIndex, direction, nextSlideIndex){} }); });
三.動手寫全屏滾動
這里主要介紹監聽mousewheel事件及滾動。
由于mousewheel事件的兼容性,引用jquery-mousewheel插件來監聽滾輪事件。
通過參數delta可以獲取鼠標滾輪的方向和速度(舊版本需要傳delta參數,新版本不需要,直接用event取)。如果delta的值是負的,那么滾輪就是向下滾動,正的就是向上。
// using on $('#my_elem').on('mousewheel', function(event) { console.log(event.deltaX, event.deltaY, event.deltaFactor); }); // using the event helper $('#my_elem').mousewheel(function(event) { console.log(event.deltaX, event.deltaY, event.deltaFactor); });
可以根據需求使用fullpages實現全屏滾動(上下,左右),也可以使用jquery-mousewheel定制不同高度的全屏滾動。
以上就是本文的全部內容,希望對大家的學習有所幫助。