2015-10-15 119 views
1

我有一個腳本滾動按鈕點擊窗口。工作正常,但我怎麼才能得到這隻有一個目標股利?我的意思是隻滾動一個特定的div。 我試圖把getElementById,但我沒有成功。只滾動div滾動

是否可以用scrollBy來做到這一點?

<button onmousedown="skrull();" onmouseup="stop();" style="position:fixed;">Click to scroll <3</button> 

<p>Some text and line breaks to enable scrolling!</p> 

<script> 
var skrullInterval; 
function scrollWin() { 
    window.scrollBy(0, 100); 
} 
skrull = function skree() {skrullInterval = setInterval(scrollWin, 100);} 
function stop() { 
    clearInterval(skrullInterval); 
} 
</script> 
+0

爲什麼你不能'scrollTo()'? –

+0

我不認爲你可以滾動div,我認爲這將被稱爲移動它,你會使用這樣的事情? document.getElementById(「myBtn」)。style.top =「100px」;或document.getElementById(「myBtn」)。style.left =「100px」; – WouldBeNerd

+0

我不確定我是否按照你的想法。我試圖將scrollBy更改爲scrollTo - > nothings發生。 –

回答

0

scrollBy()和scroll()僅爲窗口對象定義。如果你想滾動一個元素,你應該設置scrollTop到所需的偏移量(絕對值,與scrollBy()不同,負值默認轉換爲0)。

element.scrollTop = 50; 

從MDN:

的Element.scrollTop屬性獲取或設置 一個元素的內容被垂直滾動的像素的數量。

元素的scrollTop值是從元素的頂部到其最上面的可見內容的距離的度量。當元件的 內容不產生垂直滾動條,則其scrollTop的 值爲0

滾動水平也是可能的scrollLeft。請記住,這不過如果你要處理從右到左的方向:

注意,如果該元素的元素的方向是RTL (從右到左),那麼scrollLeft是0時滾動條在滾動到內容結尾處時,它的最右邊位置(滾動內容的開頭)爲 ,然後 越來越消極。