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

时间:2016-03-20 19:15:09

标签: javascript html css formatting

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

此字符/图像将落后于H1标题,并且应该在不同尺寸下看起来很好。

4 个答案:

答案 0 :(得分:4)

您只需 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>
&#13;
&#13;
&#13;

或者您可以使用 JQuery setInterval

&#13;
&#13;
setInterval(function() {
  $('span').animate({
    opacity: 1
  }, 600).animate({
    opacity: 0
  }, 600)
}, 1200);
&#13;
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;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
setInterval(function() {
  $('span').animate({
    opacity: 1
  }, 600).animate({
    opacity: 0
  }, 600)
}, 1200);
&#13;
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;
}
&#13;
<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>
&#13;
&#13;
&#13;

&#13;
&#13;
setInterval(function() {
  $('span').animate({
    opacity: 1
  }, 600).animate({
    opacity: 0
  }, 600)
}, 1200);
&#13;
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;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您不能使用几个代码来完成此操作 没有图书馆可以这样做。您可以使用js伪造光标。

第1步

隐藏主光标,

caret-color: transparent;

第2步

创建一个span元素

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

第3步

使用js使span元素闪烁

答案 3 :(得分:0)

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

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

示例:

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