2014-02-13 27 views
0

我有一個可以通過jQueryUI拖動的元素。我正在使用它來執行下拉以刷新交互。模擬基於身體垂直滾動的元素上的鼠標移動

我試圖完成的是當用戶滾動到窗口/正文的頂部,但試圖進一步滾動,然後根據用戶向上滾動的距離,此元素(#main)被拖拽。

我如何計劃拖拽它是通過模擬.mousedown().mousemove()和`.mouseup()事件,這似乎工作(意味着它們觸發拖動)。

以下是我認爲應該在一些實/一些僞代碼工作:

if($("body").scrollTop() === 0) 
{ 
    //do your stuff 
} 

scrollTop()函數返回:

$(window).on('scroll', function(){ 
    if($(this).scrollTop() === 0){ 

     if(extra movement beyond scrollTop 0){ 
      $('#main').mousedown(); 
      //move #main down number of pixels of extra movement/extra scroll up. 
      $('#main').mouseup(); 
     } 
    } 
}); 

回答

1

你可以通過這樣獲得滾動位置從頁面滾動位置到其激活的元素頂部的px編號(在上面的示例中 - 在body標記上)。

這裏是一個example

如果你需要得到的滾動,你可以找到this SO有用的增量。

+0

這是回答這個問題嗎?如果是這樣,請接受它:) – vlio20

+0

不,我知道如何使用scrollTop,我想學習如何獲得超出scrollTop === 0的運動。所以當scrollTop已經是零並且用戶嘗試滾動更多時,如何我知道他們試圖多滾動多少? – gomangomango

+0

你可以做一點點黑客攻擊。你可以創建一個高度爲100px的元素,但是隻能使用90px(通過初始設置默認位置爲10px),然後當用戶試圖移動這個10px的頂部時,你會得到這個位置。if你試圖實現拉刷新效果這裏是一個鏈接http://usehook.com/ – vlio20