这是一款炫酷的jquery输入框键入文字动画特效。该文字特效在用户键入字母时,通过jquery代码来制作文字的动画效果,非常炫酷。

使用方法

在页面中引入style.css和jquery文件。

<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="path/to/jquery.min.js" type="text/javascript"></script>
                
HTML结构

该输入框键入文字动画特效的基本HTML结果如下:

<form>
  <div class="input_wrap">
    <input type="text" placeholder="Please type" />
    <div class="after"></div>
  </div>
</form>
                
JavaScript

下面是该文字动画的jquery插件代码。

(function($) {
  function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
  $.fn.animChars = function(options) {
    var params = $.extend(
      {
        duration: 1,
        upperLimit: 150,
        sizeInterval: [15, 80]
      },
      options
    );
    $(this).keypress(function(e) {
      console.log(this.selectionStart)
      var rand = getRandomInt(1, 9);
      var randP = Math.floor(Math.random() * 10);
      randP < 5 ? (randP = rand) : (randP = rand - rand * 2);

      var c = String.fromCharCode(e.which);
      $(this).parent().append("<span class='cl" + rand + "'>" + c + "</span>");

      $(this)
        .parent()
        .find("span.cl" + rand + "")
        .css({
          left: getRandomInt(0, 90) + "%",
          "font-size": getRandomInt(
            params.sizeInterval[0],
            params.sizeInterval[1]
          )
        })
        .fadeIn(100, function() {
          $(this)
            .css({
              "margin-bottom": getRandomInt(
                params.upperLimit - params.upperLimit / 2
                  ? params.upperLimit / 2
                  : 0,
                params.upperLimit
              ),
              "margin-left": randP * 10
            })
            .fadeOut(params.duration * 1000, function() {
              $(this).remove();
            });
        });
    });
  };
})(jQuery);
                

最后在页面DOM元素加载完毕之后,通过下面的代码来初始化该文字动画插件。

$(document).ready(function() {
  $("input").animChars({
    duration: 0.8,
    upperLimit: 200,
    sizeInterval: [15, 80]
  });
});