理解滑鼠滾動事件

来源:http://www.cnblogs.com/grf0529/archive/2016/10/14/5962421.html
-Advertisement-
Play Games

javascript<script> window.onload = function(){ var count = 0; document.onmousewheel = function(e){ /*滑鼠滾動的量 下滾是負 上滾是正*/ if(e.wheelDelta < 0){ count ++ ...


javascript
<script>
window.onload = function(){
var count = 0;
document.onmousewheel = function(e){
/*滑鼠滾動的量 下滾是負 上滾是正*/
if(e.wheelDelta < 0){
count ++;
}else{
count --;
}
console.log(count);
}
}
</script>
```

#### 第二步 瞭解 fullpage jquery插件

> fullPage.js 是一個基於 jQuery 的插件,它能夠很方便、很輕鬆的製作出全屏網站。

下載地址 https://github.com/alvarotrigo/fullPage.js

1、使用

```html
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<title>fullpage</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Jesse">
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.7.4/jquery.fullPage.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.7.4/jquery.fullPage.js"></script>
</head>

<body>
<!-- <ul id="fullpageMenu" style="position:fixed;top:100px;right:20px;z-index:999;">
<li data-menuanchor="page1" class="active"><a href="#page1">1</a></li>
<li data-menuanchor="page2" ><a href="#page2">2</a></li>
<li data-menuanchor="page3"><a href="#page3">3</a></li>
<li data-menuanchor="page4" ><a href="#page4">4</a></li>
<li data-menuanchor="page5" ><a href="#page5">5</a></li>
</ul> -->
<div id="header" style="position:fixed;top:20px;right:20px;font-size: 30px;color:#fff;">123</div>
<div id="fullpage">
<div class="section">section1</div>
<div class="section">section2</div>
<div class="section">
<div class="slide"> Slide 1 </div>
<div class="slide"> Slide 2 </div>
<div class="slide active"> Slide 3 </div>
<div class="slide"> Slide 4 </div>
</div>
<div class="section">section4</div>
<div class="section">section5</div>
</div>
<script>
$(document).ready(function() {
$('#fullpage').fullpage({
//配置項介紹
//sectionsColor為每個section設置background-color屬性
sectionsColor:['green','orange','gray','red','yellow'],
//controlArrows定義是否通過箭頭來控制slide,預設true
controlArrows:false,
//verticalCentered定義每一頁的內容是否垂直居中,預設true
verticalCentered:false,
//resize字體是否隨視窗縮放而縮放,預設false
resize:true,
//scrollingSpeed設置滾動速度,單位毫秒,預設700
scrollingSpeed:1000,
//anchors定義錨鏈接,預設為[],定義錨鏈接時,值不要和頁面中的任何ID或name相同,且不需要加#
anchors:['page1','page2','page3','page4','page5'],
//lockAnchors是否鎖定錨鏈接,預設為false,設為true後鏈接地址不會改變
// lockAnchors:true,
//easing定義頁面section滾動的動畫方式,預設為easeInOutCubic,若修改此項需引入jquery.easing插件
//css3是否使用CSS3 transforms來實現滾動效果,預設為true。若瀏覽器不支持CSS3,則會用Jquery來實現
//css3:false,
//loopTop滾動到最頂部後是否連續滾動到底部,預設為false
//loopBottom滾動到最低部後是否連續滾動到頂部,預設為false
//loopHorizontal橫向slide幻燈片是否迴圈滾動,預設為true
//autoScrolling是否使用插件的滾動方式,預設為true,若為false則會出現瀏覽器自帶滾動條
//scrollBar是否包含滾動條,預設為false,若為true瀏覽器自帶滾動條出現
//paddingTop/paddingBottom設置每一個section頂部和底部的padding,預設為0
//fixedElements固定元素,預設為null,需要配置一個jquery選擇器,在頁面滾動時,fixElements設置的元素不滾動
fixedElements:"#header",
//keyboardScrolling是否可以使用鍵盤方向鍵導航,預設為true
//touchSensitivity在移動設備中滑動頁面的敏感性,預設為5最高100,越大越難滑動
//continousVertical是否迴圈滾動,預設為false,註意這個屬性和loopTop loopBottom不相容,不能同時設置
//animateAnchor錨鏈接是否可以控制滾動動畫,預設為true,若為false則錨鏈接定位失效
//recordHistory是否記錄歷史,預設為true,通過瀏覽器的前進後退來導航。若設置autoScrolling:false,那麼這個屬性將被關閉
//menu綁定菜單,設定的相關屬性與anchors的值對應後,菜單可以控制滾動條,預設為false。可設置為菜單的jquery選擇器
//menu:"#fullpageMenu",
//navigation是否顯示導航,預設為false
navigation:true,
//navigationPosition導航小圓點的位置
navigationPosition:"right",
//navigationTooltips導航小圓點的提示,註意按順序設置
navigationTooltips:['page1','page2','page3','page4','page5'],
//showActiveTooltip是否顯示當前頁面的tooltip信息,預設為false
//slidesNavigation 是否顯示橫向幻燈片的導航,預設為false
slidesNavigation:true,
//slidesNavPosition橫嚮導航的位置,預設為bottom,可以設置為top或bottom
slidesNavPositon:"top",
//scrollOverflow內容超過滿屏後是否顯示滾動條,預設為false,如果為true則會顯示滾動條,若需滾動查看內容還需要jquery.slimscroll插件的配合
//sectionSelector:section選擇器。預設為.section
//slideSelector:slide選擇器,預設為.slide
//方法介紹
//$.fn.fullpage.***()
//moveSectionUp()向上滾動一頁
//moveSectionDown()向下滾動一頁
//moveTo(section,slide)section從1開始,slide從0開始
//silentMoveTo(section,slide)和moveTo一樣,但是沒有滾動效果
//moveSlideRight()幻燈片向右滾動
//moveSlideLeft()幻燈片向左滾動
//setAutoScrolling(boolean):動態設置autoScrolling
//setLockAnchors(boolean):動態設置lockAnchors
//setRecordHistory(boolean):動態設置recordHistory
//setScrollingSpeed(milliseconds):動態設置scrollingSpeed
//destory(type)銷毀fullpage,type可以不寫或者使用all
//reBuild()重新更新頁面和尺寸,用於ajax請求改變頁面結構後重建效果
//lazyLoading
});
});
</script>
</body>

</html>
```

2、選項


|選項|類型|預設值|解釋|
|----|----|----|----|
|verticalCentered|字元串|true|內容是否垂直居中|
|resize|布爾值|false|字體是否隨著視窗縮放而縮放|
|slidesColor| 函數| 無 |設置背景顏色|
|anchors |數組| 無 |定義錨鏈接|
|scrollingSpeed |整數| 700 |滾動速度,單位為毫秒|
|easing |字元串 |easeInQuart |滾動動畫方式|
|menu |布爾值| false| 綁定菜單,設定的相關屬性與 anchors 的值對應後,菜單可以控制滾動|
|navigation |布爾值 |false |是否顯示項目導航|
|navigationPosition |字元串| right| 項目導航的位置,可選 left 或 right|
|navigationColor |字元串 |#000| 項目導航的顏色|
|navigationTooltips |數組 |空 |項目導航的 tip|
|slidesNavigation |布爾值 |false |是否顯示左右滑塊的項目導航
|slidesNavPosition |字元串 |bottom |左右滑塊的項目導航的位置,可選 top 或 bottom
|controlArrowColor |字元串 |#fff |左右滑塊的箭頭的背景顏色
|loopBottom |布爾值 |false |滾動到最底部後是否滾回頂部|
|loopTop |布爾值 |false |滾動到最頂部後是否滾底部|
|loopHorizontal |布爾值 |true |左右滑塊是否迴圈滑動|
|autoScrolling |布爾值 |true |是否使用插件的滾動方式,如果選擇 false,則會出現瀏覽器自帶的滾動條|
|scrollOverflow| 布爾值 |false |內容超過滿屏後是否顯示滾動條|
|css3 |布爾值 |false |是否使用 CSS3 transforms 滾動|
|paddingTop |字元串| 0 |與頂部的距離|
|paddingBottom |字元串 |0 |與底部距離|
|fixedElements |字元串 |無 ||
|normalScrollElements| | 無 ||
|keyboardScrolling |布爾值 |true |是否使用鍵盤方向鍵導航|
|touchSensitivity |整數| 5 ||
|continuousVertical| 布爾值| false |是否迴圈滾動,與 loopTop 及 loopBottom 不相容|
|animateAnchor |布爾值| true||
|normalScrollElementTouchThreshold| 整數| 5 |||

3、方法

|方法|解釋|
|----|----|
|moveSectionUp()| 向上滾動
|moveSectionDown() |向下滾動
|moveTo(section, slide)| 滾動到
|moveSlideRight() |slide 向右滾動
|moveSlideLeft() |slide 向左滾動
|setAutoScrolling() |設置頁面滾動方式,設置為 true 時自動滾動
|setAllowScrolling() |添加或刪除滑鼠滾輪/觸控板控制
|setKeyboardScrolling() |添加或刪除鍵盤方向鍵控制
|setScrollingSpeed() |定義以毫秒為單位的滾動速度


4、回調函數

|回調函數|解釋|
|----|----|
|afterLoad| 滾動到某一屏後的回調函數,接收 anchorLink 和 index 兩個參數,anchorLink 是錨鏈接的名稱,index 是序號,從1開始計算
|onLeave| 滾動前的回調函數,接收 index、nextIndex 和 direction 3個參數:
|index| 是離開的“頁面”的序號,從1開始計算;
|nextIndex| 是滾動到的“頁面”的序號,從1開始計算;
|direction| 判斷往上滾動還是往下滾動,值是 up 或 down。
|afterRender| 頁面結構生成後的回調函數,或者說頁面初始化完成後的回調函數
|afterSlideLoad| 滾動到某一水平滑塊後的回調函數,與 afterLoad 類似,接收 anchorLink、index、slideIndex、direction 4個參數
|onSlideLeave| 某一水平滑塊滾動前的回調函數,與 onLeave 類似,接收 anchorLink、index、slideIndex、direction 4個參數


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • C語言 變數存儲 數據結構 嵌入式 ARM 靜態變數 局部變數 全局變數 單片機 記憶體分配 ...
  • 1.AOP的作用 在OOP中,正是這種分散在各處且與對象核心功能無關的代碼(橫切代碼)的存在,使得模塊復用難度增加。AOP則將封裝好的對象剖開,找出其中對多個對象產生影響的公共行為,並將其封裝為一個可重用的模塊,這個模塊被命名為“切麵”(Aspect),切麵將那些與業務無關,卻被業務模塊共同調用的邏 ...
  • (-1)寫在前面 我用的是MyEclipse8.5. 還記得以前幫助一個女同學解決問題的時候,特意情調了要先啟動服務在發佈項目,其實單獨的時候都是知道的,總和起來後就容易片面的給出結論。因為不會發生問題所以啊也不知道自己錯了。倒是瞭解後,很多莫名其妙的問題說的清了。 (0)步驟說明 註意這個名字是m ...
  • 簡介:Fabric是基於Python實現的SSH命令行工具,簡化了SSH的應用程式部署及系統管理任務,它提供了系統基礎的操作組件,可以實現本地或遠程shell命令,包括:命令執行、文件上傳、下載及完整執行日誌輸出等功能。Fabric在Paramiko的基礎上做了更高一層的封裝,操作起來會更加簡單。 ...
  • 命令行界面編譯運行C/C++程式 2016-10-14 編寫好程式後,就需要對程式進行編譯、執行。很多編譯器都具備集成開發環境(IDE),在開發大型程式時,IDE強大的功能十分有用。然而當程式較小,使用IDE就會非常麻煩。比如,如果用IDE寫一個冒泡排序演算法對一個數組進行排序,就需要新建項目、項目中 ...
  • 學習和工作的過程中總結的乾貨,包括常用函數、常用js技巧、常用正則表達式、git筆記等。為剛接觸前端的童鞋們提供一個簡單的查詢的途徑,也以此來緬懷我的前端學習之路。 PS:此文檔,我會持續更新。 <! more Ajax請求 jquery ajax函數 我自己封裝了一個ajax的函數,代碼如下: j ...
  • 國慶節前Ionic2發佈了RC0版本,已經接近正式版了,前不久Angular2和TypeScript2也已經發佈了正式版。詳情請參考官方博客: http://blog.ionic.io/announcing-the-ionic-2-release-candidate/ 這次升級提高了一定的性能,引進 ...
  • 1.什麼是canvas? 可以繪製圖形的標簽。一般用javascript來繪製。 2.創建一個畫布 3.在畫布上繪圖。 4.canvas-路徑 效果: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...