2014-11-21 60 views
0

我那種模擬,我有通過定義2個div的每一幕,作爲一個頁面的多個頁面。只顯示一個頁面。這些div是:隱藏和顯示DIV導致列表中該div滾動到頂部

  1. divProjectList
  2. divProjectListItem

當用戶打開該網站,在div 'divProjectList' 所示。這個div包含一個包含項目的無序列表。這是一個很長的清單,所以它是可以排序的。

一旦用戶點擊列表中的一個項目,我做了$('#divProjectList').hide(),然後是$('#divProjectListItem').show()。該列表現在對用戶是不可見的,而是顯示他從列表中選擇的項目的項目細節。

只要用戶點擊關閉按鈕它工作周圍的其他方法。項目詳細信息頁面被隱藏,項目列表頁面再次顯示。

如果用戶向下滾動了一下(或幾頁),那麼該項目列表滾動回的第一個項目和項目,他點擊了現在拿出來看。

我有一個JSFiddle具有隱藏 - 和顯示按鈕,它模擬我上面描述的行爲的列表。

我想知道這是否是正常現象,我看到這裏,我怎麼能繞過這個。現在我解決它通過做$ .ScrollTo:

$('#' + currentProjectId).ScrollTo({duration: 0, offsetTop: 151}) 

回答

3

這個jQuery代碼提醒你,你滾動到,並可以使你回到那裏,當你按下按鈕顯示:

http://jsfiddle.net/py7zemLo/1/

jquery:

var scroll; 

    $("#btnHide").on("click", function (e) { 
     scroll = $(document).scrollTop(); 
     // $("#divOptions").hide(); 
     $("#divOptions").css('display', 'none'); 
    }) 

    $("#btnShow").on("click", function (e) { 
     // $("#divOptions").show(); 
     $("#divOptions").css('display', 'block'); 
     if (scroll !== null) { 
      $(document).scrollTop(scroll); 
     } 
    }) 

我希望這可以幫助你!

+0

謝謝您的回答斯特凡!你的代碼或多或少是我在代碼中完成的,看到我的fp。我發現我需要使用100毫秒的時間才能使它始終工作。 – CrashingDutchman 2014-11-24 08:20:05