好程式設計師技術分享jQuery實現類似fullpage外掛的全屏滾動效果
好程式設計師 技術分享 jQuery實現類似fullpage外掛的全屏滾動效果 。
結合網上的思路,加上我之前自己做的程式碼,程式碼有這幾種功能:
1.頭部和尾部的內容可以不用滾動,只要中間的滾動就行。
2.支援上一屏和下一屏的動畫觸發
3.支援下一頁和上一頁導航跳轉
4.支援小導航顯示和跳轉到某一頁
HTML程式碼:
<div>header</div>
<div>
<div>
<div class="page page1">page1</div>
<div class="page page2">page2</div>
<div class="page page3">page3</div>
<div class="page page4">page4</div>
</div>
<div><i></i><i></i><i></i><i></i></div>
<a href="javascript:void(0)">下一頁</a>
</div>
<div>footer</div>
<script src="
<script src="
CSS設定時,需要注意有兩個父類元素,最外面的要設定超出高度隱藏。
.doc{height:640px;position:relative;overflow:hidden}
.main{position:relative}
.doc .page{position:absolute;height:100%;width:100%;top:100%}
.doc.done .page{position:static;top:0}
JS程式碼,要注意滾動的相容程式碼用到了jQuery外掛jquery-mousewheel,不要漏掉這個外掛
JS:
$(function() {
var onScroll = false,
curIndex = 0,
len = $(".doc .page").length;
var winHeight = $(window).height();
// var boxHeight = winHeight- 60 >640 ? winHeight - 60 : 640; //當需要顯示所有內容,需要給外層一個固定高度,保證所有內容都能看到
var boxHeight = winHeight - 60;
var toPage = function(curIndex) {
onScroll = true;
var now = -curIndex * boxHeight;
$(".page").eq(curIndex).addClass("current").siblings(".page").removeClass("current");
$(".page-nav i").eq(curIndex).addClass("current").siblings("i").removeClass("current");
$(".main").animate({
top: now + "px"
},1000,function() {
onScroll = false;
});
};
$(".doc").css("height", boxHeight);
$(".main").css("height", boxHeight * len);
$(".page").css("height", boxHeight);
$(".doc").addClass("done");
var pageNext = function() {
if (curIndex == len - 1) return;
curIndex++;
toPage(curIndex);
}
var pagePrev = function() {
if (curIndex == 0) return;
curIndex--;
toPage(curIndex);
}
$(".doc").on("mousewheel",function(e, i) {
if (onScroll) return;
if (i < -.2) {
//向下滾動
pageNext();
} else {
//向上滾動
pagePrev();
}
});
$('.nextPage').on('click',function() {
if (onScroll) return;
pageNext();
});
$('.page-nav i').on('click',function() {
if (onScroll) return;
var index = $(this).index();
toPage(index);
})
});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2640411/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- fullPage.js全屏滾動外掛APIJSAPI
- 好程式設計師技術教程分享JavaScript運動框架程式設計師JavaScript框架
- 微信小程式功能之全屏滾動效果的實現程式碼微信小程式
- 好程式設計師Java教程分享Vue外掛之Axios程式設計師JavaVueiOS
- 類似微信首頁彈性滾動和慣性滾動效果的實現——OverScroll
- Jquery實現的高亮效果程式碼分享jQuery
- 用 ES6 寫全屏滾動外掛
- 好程式設計師web前端技術分享css盒模型程式設計師Web前端CSS模型
- 好程式設計師web前端學習路線分享滾動穿透方法程式設計師Web前端穿透
- 好程式設計師技術分享淺談JavaScript中的閉包程式設計師JavaScript
- 好程式設計師web前端技術分享移動端頁面佈局程式設計師Web前端
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師web前端技術分享媒體查詢程式設計師Web前端
- Jquery外掛Nicescroll 製作漂亮的滾動條jQuery
- 好程式設計師技術分享html5和JavaScript的區別程式設計師HTMLJavaScript
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- Flutter 實現類似美團外賣店鋪頁面滑動效果Flutter
- 好程式設計師web前端分享js實現實戰案例程式設計師Web前端JS
- 好程式設計師分享HashSet實現去除重複元素程式設計師
- 好程式設計師Java教程分享面試中Spring的技術問題程式設計師Java面試Spring
- 好程式設計師雲端計算教程分享Mysql技術知識點程式設計師MySql
- 好程式設計師web前端教程分享3種方法實現CSS隱藏捲軸並可以滾動內容程式設計師Web前端CSS
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 好程式設計師HTML5培訓技術分享JavaScript 閉包程式設計師HTMLJavaScript
- 好程式設計師Java教程分享Java技術知識點總結程式設計師Java
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- VSCode中類似Postman的外掛VSCodePostman
- 好程式設計師Java學習路線分享JavaEE的13種核心技術程式設計師Java
- 好程式設計師web前端教程分享Jquery常見面試題程式設計師Web前端jQuery面試題
- 好程式設計師Web前端培訓分享jQuery面試題梳理程式設計師Web前端jQuery面試題
- Vue.js+cube-ui(Scroll元件)實現類似頭條效果的橫向滾動導航條Vue.jsUI元件
- fullpage外掛基本應用
- 好程式設計師Java分享JVM類載入機制程式設計師JavaJVM
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師帶你認識“jQuery”程式設計師jQuery
- [Linux] Linux 自動掛載mount --bind 實現類似目錄硬鏈的效果 (包含ZFS方案)Linux