2012-07-17 51 views
1

我有一組使用jQuery手風琴(手機網站)顯示內容的按鈕。我想知道什麼是最好的方式,以便當用戶選擇另一個按鈕時,它會滾動到所選按鈕的頂部。使用jquery手風琴滾動到頂部按鈕accordian

這是我目前有我的手風琴腳本:

$("#accordion").accordion({ 
     collapsible: true, 
     active: false, 
     autoHeight: false, 
     clearStyle: true 
    }); 
}); 

我也做了this fiddle,但它並沒有真正的功能就像它在移動設備上觀看它時,(除非你調整窗口的大小呢/然後它的功能就像在移動設備上一樣)。

回答

1

我找到了this related question

根據評論,您可以使用element.scrollIntoView()作爲活動元素,因爲此'在所有主流瀏覽器的「」均受支持。

還有一個提到jquery plugin(在第三個答案),它做同樣的事情。

如果您綁定到change事件手風琴,下面應該工作:

$('#myaccordion').accordion({ 
    // .. other options 
    change: function(event, ui) { 
      ui.newHeader.scrollIntoView(); // or scrollintoview(), 
              // if you're using the plugin 
      } 
}); 

我還沒有嘗試過任何解決方案,也許你可以發表評論,如果其中一人的作品?

編輯

重讀你的問題似乎,你不會需要scrollIntoView功能/插件,後因爲按通常已經在視圖(你會如何把它壓按鈕.. )。

因此,您可能只使用window.scroll(或使用任何可滾動的頂級容器)。

根據您的jsfiddle例如,下面似乎工作:

$("#accordion").accordion({ 
     collapsible: true, 
     active: false, 
     autoHeight: false, 
     clearStyle: true, 
     change: function(event, ui) { 
      if (ui.newHeader) { 
      var scrollTop = ui.newHeader.position().top; 
      window.scroll(0,scrollTop); 
      } 
     } 
    }); 
+0

嗯。那麼,我試圖添加scrollIntoView插件,似乎並沒有工作。除非我把它設置錯誤。這裏我更新的小提琴: http://jsfiddle.net/ultraloveninja/6skgc/6/ – ultraloveninja 2012-07-17 16:13:06

+0

好吧,我試圖讓你的例子工作,相應地編輯了答案... – MartinStettner 2012-07-28 10:12:16