javascript滚动到光标: rect.顶部更改

标签 javascript jquery html scroll position

我在网页中有一个可内容编辑的 div,我正在尝试使用以下代码将光标置于 View 中。我的经历是,返回的光标坐标似乎在跳跃...通常 x 值很好,但 y 值在正确值和非常低的值之间交替,导致页面向上滚动太远然后向后滚动通过交替按键/调用到达正确的位置。 任何见解都值得赞赏。我的 JavaScript 是:

function getCaretClientPosition() 
{ 
var element = document.getElementById('mydivcontent'); 
var x = 0, y = 0; 
var doc = element.ownerDocument; 
var win = doc.defaultView; 
var sel = win.getSelection(); 

  if (sel.rangeCount) 
  { 
    var range = win.getSelection().getRangeAt(0); 
    if (range.getBoundingClientRect) 
    { 
      var rects = range.getClientRects(); 
      if (rects.length > 0) 
      { x = rects[0].left; y = rects[0].top; } 
    } 
  } 

  win.scrollTo(x, y); 
  return x.toString()+'|'+ y.toString();
}

每次输入字符时从 C# 端调用: var result = webview.EvaluateJavascript("getCaretClientPosition();");

结果会随着输入的字符而变化,例如:24|645、36|77、48|645、60|77...有时 x 值也会在高点和低点之间交替

最佳答案

resulting in the page scrolling too far up and then back to the correct place with alternating key presses/ calls.

您将代码顶部的 xy 默认为 0,并且仅设置 xy 在某些条件下......但你总是执行win.scrollTo(x, y)也许你只想这样做如果您确实找到了有值(value)的 xy ,请滚动To

关于javascript滚动到光标: rect.顶部更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538576/

相关文章:

javascript - css/jquery - 需要持久页脚而不使用位置 :fixed

javascript - 如何使用相同的现有数据创建新的div?

javascript - Twitter Bootstrap - 图像未显示

python - 错误: The function either returned None or ended without a return statement.但在哪里找不到?

javascript - 通过动态创建数组名称在 click 函数中引用 javascript 数组

javascript - 放大 map 时获取位置 : leaflet

jquery - 如何检测 div 中图像的 url 并将其附加到另一个 div HTML

javascript - blast.js 改变 li 元素的位置

javascript - D3 按深度 trim 分层数据?

javascript - 谷歌地图3重绘折线闪烁