-2
我不知道這個滾動效果是如何調用的,所以不知道如何搜索我的答案,而且我無法在源代碼中找到它。什麼是負責滾動效果的代碼是Paragon,滾動將導致頁面向下滾動到我假設的下一個div。或者降低一定的高度。如何實現類似於Paragon網站的滾動效果
我不知道這個滾動效果是如何調用的,所以不知道如何搜索我的答案,而且我無法在源代碼中找到它。什麼是負責滾動效果的代碼是Paragon,滾動將導致頁面向下滾動到我假設的下一個div。或者降低一定的高度。如何實現類似於Paragon網站的滾動效果
我扔在一起CodePen。它沒有動畫,但解釋了一般機制(Paragon網站的做法不同,但開始以下可能更適合)。
核心部分是這樣的:
window.onwheel = function (e) {
e.preventDefault();
var wDelta = e.deltaY > 0 ? 'down' : 'up';
if (wDelta === "down") {
// scroll Down
} else {
// scroll Up
}
}
知道在哪裏可以滾動,當然我們需要知道我們在哪裏。有幾種方法可以做到這一點。我所做的是檢查當前top
的viewport
對它的height
。
var offset = window.pageYOffset,
viewportHeight = document.documentElement.clientHeight;
switch (parseInt(offset/viewportHeight,0)) {
case 0:
// we are in the first viewport
break;
case 1:
// we are in the second viewport
break;
...
}
我剛剛檢查了它的功能。性能明智,可以改進。你也應該綁定(以趕上pageUp
,pageDown
,space
等),但它可以以類似的方式完成。 爲確保向後兼容您需要展開代碼(例如綁定到onmousewheel
事件)。但是這會給你一個開始的地方。
PS
還要考慮你想要什麼樣的行爲重新加載頁面(如果用戶重裝而viewports
之間會留在它們之間,直到另一個scroll
發生)時。
問題,要求我們推薦的技術或找書,工具,軟件庫,教程或其他異地資源是題外話堆棧溢出 –
我不知道還有什麼地方要問。 – Shniper
第一個問題是,您要求我們指出在第三方網站上負責的代碼,而不是重複詢問「如何做X」的問題標題。第二個問題是,如果你問得對,它會是一個重複:http://stackoverflow.com/questions/12849439/treating-each-div-as-a-page-when-scrolling – BSMP