2017-06-28 37 views
1

這正是它在標題中所描述的內容。
我有一個家長有overflow-x: hidden
我有3行有一些內容溢出。編程式滾動div,父母與overflow-x隱藏

在這種情況下,我不能夠以編程方式滾動行之一。 JS小提琴:https://jsfiddle.net/w6v1xydn/5/

但是,如果我將行更改爲有overflow-x: auto,編程滾動的工作,但它也顯示了一個水平滾動條。 JS小提琴:https://jsfiddle.net/w6v1xydn/6/

問題:我想了解爲什麼會這樣發生。我怎樣才能讓滾動工作,而沒有水平滾動條出現? (並沒有隱藏水平滾動條使用css 是不是一個選項

PS:寧願沒有普通的HTML/CSS/JS答案。 沒有jQuery的

更新1:家長的定位似乎並沒有影響到這個

回答

1

如果移動

overflow-x: hidden 

到行類,而不是它的工作原理。

而且你真的不需要溢出-X:隱藏在容器爲你把裏面至今,它的寬度設置爲100%,每個項目上。

+0

作品的offsetLeft屬性的任何工作!你能解釋爲什麼這個工作嗎?而我在問題中所問的卻不是? –

+0

我很確定這是有效的,因爲在你能夠滾動元素之前需要隱藏溢出。當您將overflow-x:隱藏在容器上時,其中的每個項目實際上都將其溢出屬性設置爲可見。我認爲你實際上可以將overflow-x設置爲隱藏在容器和其中的項目上,以確保現在有溢出的可能性。 – Falle1234

0

看吧:https://jsfiddle.net/cornelraiu/w6v1xydn/8/

設置孩子的div相對於這樣的定位:

#container > div {position: relative;left:0} 

然後JS:

document.getElementById("row1").style.left = '-50px'; 

這應該工作

+0

確實有效。但是每次我想以編程方式滾動時創建一個字符串值''-50px''對我來說似乎太破舊了 –

+1

然後使用Falle1234的方法。這是清潔 –

+0

不與設置offsetLeft屬性 –