2014-12-03 150 views
0

我有兩個div與視口的總高度和一個按鈕滾動從一個到另一個ScrollTo jquery插件。問題是我想防止手動滾動的可能性。滾動元素時按元素跳轉

我希望當某人用鼠標向下滾動時,瀏覽器會自動滾動到第二個視圖,當我滾動到頂部時會獲得前一個視圖。

如果我解釋好,這裏一個例子,我不知道:http://orangina.eu/heritage

嘗試在這個網頁中滾動,這就是我所需要的。

謝謝!

+4

*「問題是我想防止手動滾動的可能性。」** **爲什麼**?爲什麼當他們嘗試做正常的事情時會以奇怪的行爲給訪客帶來驚喜?人們不喜歡*做X,總是讓他們得到Y,取而代之。 – 2014-12-03 12:35:28

+0

概念上,它是一個垂直的html滑塊。 flexbox – Roi 2014-12-03 12:37:15

+0

@ T.J.Crowder這種技術已被Apple,Facebook,Tumblr,Flickr,Sony等公司用於廣告網站。在某些情況下,從用戶體驗的角度來看,這似乎並沒有那麼糟糕。這種技術有好的和壞的用途,但我們不能忘記好的。 – Alvaro 2014-12-04 09:39:03

回答

0

感謝您的回覆!

我解決了我的問題,而不是使用標準的滾動我使用了translateY css屬性。設置一個data-id到每個頁面層,並在每次向下/向上滾動時做translateY(100%,200%,300%...)。

1

糾正我,如果我錯了,但它在我看來像你試圖禁用瀏覽器的默認滾動行爲,附加事件向上滾動和向下滾動,向上或向下滾動到頁面高度的高度。

我會這樣做的方式是禁用瀏覽器的默認滾動行爲overflow:hidden正文和HTML。

然後,您可以將jQuery「mousewheel」和「DOMMouseScroll」綁定到檢查「event.originalEvent.detail> 0」或「e.originalEvent.wheelDelta < 0」的div以進行向下滾動或向上滾動。

最後在if或else裏面添加你的函數調用,取決於下卷或上卷。

如果你願意,我可以編寫代碼,但如果你自己嘗試一下,它可能會幫助你更多。

+1

這是一個很好的答案。 – superUntitled 2014-12-03 15:22:46

+0

是的!你是對的。問題是,如果我把溢出:隱藏,我試着滾動到一個特定的div ID(目前我使用scrollTo jQuery插件),頁面不會移動。如果我把溢出:隱藏如何移動到我想要的div? – Yast 2014-12-03 16:01:56

+0

如果有一個按鈕被點擊來改變div,那麼你可以簡單地做$(「....」)。單擊()模擬if和else條件內的按鈕單擊。此外,您還需要編寫更多代碼來檢測您正在打開的頁面,並根據向上或向下上下移動。 – gothical 2014-12-03 16:46:26

0

您可以通過使用fullPage.js插件來實現同樣的效果。

  • 與舊的瀏覽器,例如兼容
  • CSS3動畫提高性能
  • 很多的選擇,回調和方法IE 8.
  • 觸摸設備兼容。