Javascript 在父级为overflow-x的div上进行编程滚动

Javascript 在父级为overflow-x的div上进行编程滚动,javascript,html,css,Javascript,Html,Css,这正是标题中描述的内容。 我有一个父项具有溢出-x:hidden 我有3行,有一些内容溢出 在这种情况下,我无法以编程方式滚动其中一行。 JS小提琴: 但是如果我将行更改为具有overflow-x:auto,程序化滚动可以工作,但它也会显示一个水平滚动条。 JS小提琴: 问:我想了解为什么会发生这样的事情。在水平滚动条不显示的情况下,如何让滚动条工作?(不使用css隐藏水平滚动条不是一个选项) PS:我更喜欢没有简单HTML/CSS/JS的答案无jQuery 更新1:家长定位似乎不会影响这一点看

这正是标题中描述的内容。
我有一个父项具有
溢出-x:hidden

我有3行,有一些内容溢出

在这种情况下,我无法以编程方式滚动其中一行。 JS小提琴:

但是如果我将行更改为具有
overflow-x:auto
,程序化滚动可以工作,但它也会显示一个水平滚动条。 JS小提琴:

问:我想了解为什么会发生这样的事情。在水平滚动条不显示的情况下,如何让滚动条工作?(不使用css隐藏水平滚动条不是一个选项)

PS:我更喜欢没有简单HTML/CSS/JS的答案无jQuery

更新1:家长定位似乎不会影响这一点

看这里:

将子div设置为相对位置,如下所示:

#container > div {position: relative;left:0}
然后在js中:

document.getElementById("row1").style.left = '-50px';
这应该行得通

如果你移动它就行了

overflow-x: hidden
改为在row类上


而且你真的不需要在容器上隐藏溢出-x:,因为到目前为止,你放在容器内的每件物品的宽度都设置为100%。

确实有效。但是每次我想通过编程方式滚动时,创建一个字符串值
'-50px'
,这对于我使用Falle1234的方法来说似乎太破旧了。我不记得你在原来的问题中说过关于offsetLeft属性的任何事情:)有效!!你能解释一下为什么会这样吗?而我在问题中所问的是不正确的?我很确定这是有效的,因为在您能够滚动元素之前,需要隐藏溢出。将overflow-x:hidden放在容器上时,容器中的每个项实际上都将其overflow属性设置为visible。我认为您实际上可以将overflow-x设置为隐藏在容器和容器内的项目上,以确保现在存在溢出的可能性。