当前位置:首页 > JavaScript

js实现光标

2026-03-15 11:21:38JavaScript

光标定位与操作

在JavaScript中,操作光标通常涉及DOM元素的文本选择范围(Selection API)或输入框的光标位置(如<input><textarea>)。以下是常见的光标操作方法:

获取光标位置

const input = document.getElementById('myInput');
const cursorPos = input.selectionStart; // 获取起始位置
const cursorEnd = input.selectionEnd; // 获取结束位置(若未选中文本,则等于起始位置)

设置光标位置

input.setSelectionRange(2, 2); // 将光标定位到第2个字符后
input.focus(); // 确保输入框获得焦点

选中文本

input.setSelectionRange(0, 5); // 选中前5个字符

处理多行文本的光标

对于可编辑元素(如contenteditable<div>),需使用RangeSelection API:

const editableDiv = document.getElementById('editableDiv');
const range = document.createRange();
const selection = window.getSelection();

range.selectNodeContents(editableDiv); // 选中整个内容
range.collapse(false); // 光标移至末尾
selection.removeAllRanges();
selection.addRange(range);

监听光标事件

通过oninputonkeyup事件动态跟踪光标位置:

input.addEventListener('keyup', () => {
  console.log('当前光标位置:', input.selectionStart);
});

跨浏览器兼容性

旧版IE需使用document.selection代替:

if (document.selection) {
  const range = document.selection.createRange();
  range.moveStart('character', 2); // IE下的光标移动
}

实际应用示例

自动聚焦并定位到输入框末尾

function focusAtEnd(inputElement) {
  inputElement.focus();
  const length = inputElement.value.length;
  inputElement.setSelectionRange(length, length);
}

插入文本并保持光标位置

js实现光标

function insertTextAtCursor(text) {
  const start = input.selectionStart;
  const end = input.selectionEnd;
  input.value = input.value.substring(0, start) + text + input.value.substring(end);
  input.setSelectionRange(start + text.length, start + text.length);
}

标签: 光标js
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…