vue开发常用css,js 篇2(持续更新)

vue开发常用css,js 篇1已完结了,总共有37个知识点,有需要的小伙伴可以点击链接跳转过去

目录标题

      • [1、contenteditable 属性的标签中获取光标的位置](#1、contenteditable 属性的标签中获取光标的位置)

1、contenteditable 属性的标签中获取光标的位置

篇1中第37个点,也是实现这个问题,但是比较复杂,所以优化迭代了一版,现在一起来看看吧

直接获取 innerHtml 中range.startContainer.data 的位置 ,加上startOffset 的位置即可获取位置

javascript 复制代码
export function getCursorPosition(domId) {
  var cursorPos = 0;
  var selection = window.getSelection();
  const el = document.getElementById(domId);
  let htmlChars = el.innerHTML;
  cursorPos = selection.focusOffset;
  if (selection.rangeCount > 0) {
    const range = selection.getRangeAt(0);
    let pos = htmlChars.indexOf(range.startContainer.data);
    cursorPos = pos + range.startOffset;
  }
  console.log("光标位置:", cursorPos);
  return splitHtmlStringAtPosition(el.innerHTML, cursorPos);
}
export function splitHtmlStringAtPosition(inputString, position) {
  return [inputString.slice(0, position), inputString.slice(position)];
}
相关推荐
YWL2 分钟前
CSS变量与预处理器
前端·css
zzzzzz3101 小时前
看 react-bits,不要只看“酷炫”:一套阅读动画交互组件库的框架
javascript·react.js·动效
香芋芋圆9 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF9 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿67410 小时前
vue3-async
前端·javascript·vue.js
excel11 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript
一个游离的指针14 小时前
函数管道:消除深度嵌套调用
前端·javascript
柚yuzumi14 小时前
前端优化,从少触发一次开始:防抖与节流
前端·javascript
默_笙15 小时前
🚤 CSS 布局的"圈地运动":BFC 就是浏览器的独立领地
前端·javascript
用户9385156350715 小时前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能