2013-10-13 153 views
0

我有這個功能如何滾動到某個div onclick?

function first_scroll() { 
     document.getElementById('insert').scrollIntoView(); 
    } 

,這個按鈕

Button ID="finish" runat="server" Text="Finalize" OnClientClick="first_scroll()" 

此按鈕時運行一些代碼,我希望頁面運行此代碼後滾動。現在,這個滾動到不到一秒的特殊分區,然後在回傳之後,它又重新開始。

爲了解決這個問題,我嘗試使用

<% Page MaintainScrollPositionOnPostback="true" %> 

然而,這並沒有影響。 那麼,如何在運行一些代碼之後讓頁面滾動?

在此先感謝!

回答

0

首先,你要的功能結合爲圖像的點擊處理程序:

$('#someImage').click(function() { 
    // Code to do scrolling happens here 
}); 

這將單擊處理應用於圖像與id="someImage"。如果你想這樣做所有圖像,請用'img'替換'#someImage'

現在的實際的滾動代碼:

  1. 獲取圖像偏移(相對於文檔):

    var offset = $(this).offset(); // Contains .top and .left 
    
  2. 減去20從topleft

    offset.left -= 20; 
    offset.top -= 20; 
    
  3. 現在爲scroll-top和scroll-的<body><html>離開CSS屬性:

    $('html, body').animate({ 
        scrollTop: offset.top, 
        scrollLeft: offset.left 
    }); 
    

而且,看看在jQuery.scrollTo插件。

這是demo

這是一個重複問題from this page

+0

爲什麼20?似乎任意。 –

+0

除了這不是這個問題。我的按鈕運行一些VB代碼,然後有回傳。在回發之後,即使我使用JavaScript滾動,頁面也會重新開始在頂部。謝謝你的回答,但這沒有幫助。 – Feign

+0

@Simon,是的,這是任意的,對於不同的代碼集可以有不同的值。 – CodeMonk