jQuery 动态输入文字展示效果

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    @keyframes blink {
      0%,
      100% {
        opacity: 1
      }
      50% {
        opacity: 0
      }
    }
    @-webkit-keyframes blink {
      0%,
      100% {
        opacity: 1
      }
      50% {
        opacity: 0
      }
    }
    @-moz-keyframes blink {
      0%,
      100% {
        opacity: 1
      }
      50% {
        opacity: 0
      }
    }
    .wrap {
      width: 1000px;
      text-align: center;
      margin: 100px auto 0;
    }
    .wrap h1 {
      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 300;
    }
    .word {
      font-weight: 700;
    }
    .typed-cursor {
      opacity: 1;
      -webkit-animation: blink .7s infinite;
      -moz-animation: blink .7s infinite;
      animation: blink .7s infinite;
      display: none;
    }
    .saySection {
      margin-top: 50px;
    }
    .saySection input {
      font-size: 30px;
    }
    .saySection .txtSay {
      padding-left: 10px;
    }
    .saySection .btnSay {
      display: inline-block;
      padding: 0 20px;
      cursor: pointer;
    }
  </style>
  <script src="jquery-3.4.1.js"></script>
  <script>
    $(document).ready(function () {
      // 监听 Say 点击
      $('.saySection input:button').click(function () {
        // 获取字符串
        var str = $('.saySection input:text').val(); // '红鲤鱼与绿鲤鱼与驴'
        var strArr = str.split('');
        var wordStr = '';
        var index = 0;
        var timer = null;
        // 显示光标
        $('.typed-cursor').show();
        // 定时器
        timer = setInterval(() => {
          // 获取单个文字
          var word = strArr[index];
          if (word === undefined) {
            clearInterval(timer);
            $('.typed-cursor').hide();
          }else{
            // 每次往.word中插入一个文字
            wordStr += word;
            // 进行展示
            $('.word').text(wordStr)
            // 索引+1
            index++;
          }
        }, 200);
      });
    })
  </script>
</head>
<body>
  <div class="wrap">
    <h1>
        You want to say : <span class="word"></span><span class="typed-cursor">|</span> !
    </h1>
    <div class="saySection">
      <input type="text" id="inValue" class="txtSay" />
      <input type="button" value="Say" id="btnSay" class="btnSay" />
    </div>
  </div>
</body>
</html>
  • demo 效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值