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)];
}
相关推荐
codingandsleeping25 分钟前
一个简易版无缝轮播图的实现思路
前端·javascript·css
拉不动的猪2 小时前
简单回顾下插槽透传
前端·javascript·面试
爱吃鱼的锅包肉2 小时前
Flutter路由模块化管理方案
前端·javascript·flutter
风清扬雨2 小时前
Vue3具名插槽用法全解——从零到一的详细指南
前端·javascript·vue.js
海盗强3 小时前
Vue 3 常见的通信方式
javascript·vue.js·ecmascript
oscar9994 小时前
JavaScript与TypeScript
开发语言·javascript·typescript
橘子味的冰淇淋~4 小时前
【解决】Vue + Vite + TS 配置路径别名成功仍爆红
前端·javascript·vue.js
leluckys4 小时前
flutter 专题 六十三 Flutter入门与实战作者:xiangzhihong8Fluter 应用调试
前端·javascript·flutter
liangshanbo12155 小时前
CSS 包含块
前端·css
倒霉男孩5 小时前
CSS文本属性
前端·css