Scroll 禁用代码镜像元素上的滚动

Scroll 禁用代码镜像元素上的滚动,scroll,codemirror,react-codemirror,Scroll,Codemirror,React Codemirror,我试图在代码镜像组件上实现类似的效果,这可以通过在div上执行overflow:hidden来实现 实际上,这意味着: 没有可见的滚动条 当编辑器上发生“滚动动作”时,网站主体会自行移动(即,无法相对于网站滚动编辑器) 我怎么能这么做 附言 一个简单的“overflow:hidden”不起作用,因为它看起来像CodeMirror为垂直滚动条和水平滚动条创建了一个单独的div。我猜javascript是用来处理实际的滚动行为的。我需要javascript来还原这个吗 附言 我使用的是react

我试图在代码镜像组件上实现类似的效果,这可以通过在div上执行overflow:hidden来实现

实际上,这意味着:

  • 没有可见的滚动条
  • 当编辑器上发生“滚动动作”时,网站主体会自行移动(即,无法相对于网站滚动编辑器)
我怎么能这么做

附言

一个简单的“overflow:hidden”不起作用,因为它看起来像CodeMirror为垂直滚动条和水平滚动条创建了一个单独的div。我猜javascript是用来处理实际的滚动行为的。我需要javascript来还原这个吗

附言

我使用的是
react-codemirror2
,但我正在寻找一个通用的答案,并且很高兴能够找出如何在react中执行它。

更新的答案 CSS,其中
.editor
是包装文本区域的div:

JS,其中
editor
是您的codemirror实例:

然后,如果需要,您可以通过另一个编辑器设置
scrollTop()
位置


问题:

  • 无法从编辑器中复制
  • 选择内容时,上下移动鼠标将导致滚动。~我要找一个解决办法

是的,我希望完全禁用/冻结滚动。我可以使用代码镜像API隐藏滚动条。不幸的是,我无法使用此规则在编辑器上悬停时使用触摸条滚动。CodeMirror编辑器的滚动是通过javascript控制的,这就是为什么这可能不起作用的原因
.editor .CodeMirror-scroll {
    overflow: hidden !important;
}

/* hide the scrollbars */
.editor .CodeMirror-vscrollbar, .editor .CodeMirror-hscrollbar {
    display: none !important;
}
// does not allow focus within codemirror editor:
editor.setOption('readOnly', 'nocursor');