当前位置:首页 > 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实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

jquery js

jquery js

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

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…