2017-06-28 35 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属性 –