首頁 >web前端 >js教程 >jquery實作全螢幕滾動_jquery

jquery實作全螢幕滾動_jquery

WBOY
WBOY原創
2016-05-16 15:23:141767瀏覽

在很多情況下,我們需要頁面的全螢幕滾動,尤其是行動端。今天簡單的介紹一下全螢幕滾動的知識。

一.全螢幕滾動的原理
1.js動態取得螢幕的高度。

取得螢幕的高度,設定每個螢幕的高度。

2.監聽mousewheel事件。

監聽mousewheel事件,並判斷滾輪的方向,向上或向下滾動一屏。

二.jQuery外掛fullpages介紹
fullPage.js 是一個基於 jQuery 的插件,它能夠很方便、很輕鬆的製作出全螢幕網站,主要功能有:

  • 支援滑鼠滾動
  • 支援前進後退與鍵盤控制
  • 多個回呼函數
  • 支援手機、平板觸控事件
  • 支援 CSS3 動畫
  • 支援視窗縮放
  • 視窗縮放時自動調整
  • 可設定滾動寬度、背景顏色、滾動速度、循環選項、回調、文字對齊方式等

使用方法

1、引入文件

<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<script src="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 加上cla​​ss=”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定制不同高度的全螢幕滾動。

以上就是本文的全部內容,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn