2013-02-16 60 views
0

我寫了一個JavaScript代碼,將視口從一個鏈接滑動到另一個鏈接。 Basicaly一切工作正常,你如何看到有http://jsfiddle.net/DruwJ/8/Javascript轉換

我現在的問題是,我想停止視幻燈片時鏈路

<input id="bottom" type="button" value="Midlle" onclick="smoothScrollTo(0, 500)"> 

是在vieport的底部,而不是頂部。

我希望有人知道解決方案! (我是一個JavaScript初學者)

謝謝!

+0

它實際上只是一個巧合滾動會這麼說,中間鍵是在頂部;嘗試擴展jsfiddle視口並滾動,您會看到它停在某處的中間位置。 – lmortenson 2013-02-16 15:51:14

+0

它不是巧合,當我擴大視口時文檔更短,以便滾動在頁面底部結束! – 2013-02-16 15:54:16

回答

1

我可以沒有jQuery的最好的是:

onclick="smoothScrollTo(document.getElementById('bottom').offsetTop + 30 - window.innerHeight)" 

我假設你想在頁面的底部對齊按鈕的底部。而不是按鈕的頂部與頁面底部對齊。

這裏的關鍵是減去window.innerHeight讓按鈕在底部。我將30作爲按鈕高度的近似值。不幸的是,我不熟悉如何在沒有jQuery幫助的情況下獲得按鈕的高度。我建議在你的項目中使用jQuery來使所有的DOM操作更加穩定和友好。

或者,您可以在按鈕下方添加一些虛擬div /元素,並讓系統滾動到該位置。

onclick="smoothScrollTo(document.getElementById('dummy').offsetTop - window.innerHeight)" 

參見:http://jsfiddle.net/DruwJ/10/

+0

YOU ROCK!謝謝你 – 2013-02-16 16:24:43

+0

我怎樣才能實現它,他扣除了100%的vieport?事情是,我的整個網站的高度爲300%,每個面板都鏈接到下一個網站,一個面板的高度爲100%,它應該看起來像這樣,但我的代碼不正確:smoothScrollTo(document.getElementById ('dummy')。offsetTop - 100%)「 – 2013-02-16 16:46:12

+0

對不起,我不明白你的問題 – 2013-02-16 17:03:37