在 HTML 中模拟闪烁的文本光标

Simulate a flashing text cursor in HTML

本文关键字:文本 光标 闪烁 模拟 HTML      更新时间:2023-09-26

HTML中插入闪烁的光标(例如DOS中闪烁的粗下划线或Linux中的垂直条)的好方法是什么?

此字符/图像将尾随 H1 标头,并且在不同大小下看起来不错。

你可以只用CSS来做到这一点,这里是垂直Fiddle

h1 {
  font-size: 20px;
  padding-right: 20px;
  display: inline-block;
}
h1:after {
  content: '';
  width: 20px;
  height: 2px;
  background: black;
  opacity: 0;
  display: inline-block;
  animation: blink 1s linear infinite alternate;
}
@keyframes blink {
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
<h1>Lorem ipsum dolor sit amet</h1>

或者你可以使用JQuerysetInterval

setInterval(function() {
  $('span').animate({
    opacity: 1
  }, 600).animate({
    opacity: 0
  }, 600)
}, 1200);
h1 {
  font-size: 20px;
  padding-right: 20px;
  display: inline-block;
}
h1 span {
  width: 20px;
  margin-bottom: -1px;
  height: 2px;
  background: black;
  opacity: 0;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Lorem ipsum dolor sit amet <span></span></h1>

你不能使用几个代码来做到这一点没有库可以执行此操作。您可以使用 js 制作假光标。

步骤 1

隐藏主诅咒

caret-color: transparent;

步骤 2

创建范围元素

<input type="text"><span id="fake">_</span>

步骤 3

使用 js 使 span 元素闪烁

只在 HTML 元素上使用 contenteditable 属性怎么样?

它只有在用户单击元素时才有效,但随后它可以"免费"工作,没有任何 JS 或 CSS 等。

例:

<h1 contenteditable="true">Edit me</h1>