这是一款炫酷的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]
});
});