2011-06-16 147 views
3

我想要實現的是這個,想象一下你有一個高分頁的幾個div。
高大的頁面本身是可滾動的,divs也是。內部div中的捕獲滾動

我想要實現的目的是防止在將div移動到極限時滾動整個頁面。
現在發生的事情是,當你通過滾動兇猛地到達div的末尾時,你開始滾動整個頁面。我想阻止滾動整個頁面,因爲這是用於私人項目,底部的項目很少被使用。

該div不是動態生成的,所以我可以硬編碼一切。

如果有可能,我真的很想避免使用jQuery,因爲在這種情況下看起來有點矯枉過正。

//編輯: 一個小例子可以在http://gnur.nl/demo.html
發現這個演示的預期行爲是整個頁面,當你的臘肉DIV內滾動從未滾動。

+0

這是具有溢出的div的正常行爲:自動或溢出:滾動設置,至少對於桌面瀏覽器。所以你顯然想要做更復雜的事情。但是什麼? – chrisdowney 2011-06-16 11:07:27

+0

你能演示一個演示嗎?沒有演示,很難分析發生了什麼? – 2011-06-16 10:21:09

回答

0

恐怕這是一個敗仗,滾動事件不會看起來是取消:

http://www.w3.org/TR/DOM-Level-3-Events/#event-type-scroll

,也可以與絕望的黑客向後滾動滾動進行的像素量:

var lastPos = isNaN(window.pageYOffset) ? 
    document.documentElement.scrollTop : 
    window.pageYOffset; 

window.onscroll = function(ev){ 
    var diff = (isNaN(window.pageYOffset) ? 
    document.documentElement.scrollTop : 
    window.pageYOffset) - lastPos; 
    window.scrollBy(0, -diff); 
}; 

而且使用onmouseoveronmouseout過的DIV,以防止這一點。