前两天看到某个网站上的输入框有个小特效:文字逐个显示,并且到字符串最大长度后,逐个消失,然后重新循环显示消失,循环显示字符串数组。我对这个小特效有点好奇,于是今天自己尝试用jquery写一个简单的小demo,终于把效果整出来了。首先看一下实现后的效果:

接下来上代码。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文字逐个显示逐个消失</title>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><!--引入jquery插件 -->
<style type="text/css" rel="stylesheet">
#inputArea{ /*简单设置input框的一些属性 */
margin: 30px;
width: 300px;
height: 50px;
font-size: 20px;
border: 1px solid #cccccc;
}
</style>
</head>
<body>
<input id="inputArea" type="text"/>
<script type="text/javascript">
let arr = ["yjry.com", "yjry.cn", "yjry.org", "yjry.xyz", "yjry.top"];//定义要显示的字符串数组
let index = 0;//显示的字符串索引,默认从数组中第一个字符串开始显示
let str = "";//存放要显示的字符串
$input = $("#inputArea");//获取input框的jquery对象
let timer1 = null;//定义两个定时器
let timer2 = null;
let endIndex1 = 1;//定义字符串截取的索引位置,两个索引分别用于显示和消失
let endIndex2 = 0;
let flag = false;//判断当前字符串是否显示完毕
$(function () {//dom树加载完成后执行操作,类似但不同于js的window.onload
timer1 = setInterval(add, 300);//设置两个定时器
timer2 = setInterval(remove, 300);
});
function remove() {
if(flag === true){
clearInterval(timer1);//清除显示的定时器
str = arr[index];//获取当前显示的字符串,利用另一个索引实现循环消失
endIndex1 = endIndex2;
$input.val(str.substring(0, endIndex2--));
if(endIndex1 === 0){//若当前字符串全部消失,则index加一,并设置flag为false,重新设置显示定时器
index += 1;
if(index === 5){//若当前索引最后一个字符串消失完毕,则将索引重置为0
index = 0;
}
flag = false;
timer1 = setInterval(add, 300);
}
}
}
function add() {
if(flag === false){
str = arr[index];
endIndex2 = endIndex1;
$input.val(str.substring(0, endIndex1++));
if($input.val().length === arr[index].length){//若当前字符串全部显示完毕,则设置flag为true
flag = true;
}
}
}
</script>
</body>
</html>

这个方法完全是个人想出来的,如果有什么不足之处或者有可优化的地方,欢迎大家和我交流!

使用jquery实现文本框输入特效:文字逐个显示逐个消失反复循环的更多相关文章

  1. Jquery实现文本框输入提示

    一些用户体验好的表单都会在文本框里设置输入提示,文本框获取焦点时,提示内容消息,如果未输入,失去焦点时又会出现提示. 网上找到一个比较好用的控件jquery.inputDefault.js 使用方法: ...

  2. Jquery 限制文本框输入字数【转】

    <script type="text/javascript" src="js/jquery.min.js" ></script> < ...

  3. 实现文本框默认灰色文字,点击消失,如果没输入内容可再返回原来的灰色文字(js版)

    $(document).ready(function(){ $("#biaoqian").val('这里是默认的灰色文字'); $("#biaoqian").c ...

  4. jquery判断文本框输入的是非数字内容(交流QQ群:452892873)

    isNaN($(this).val())==false   输入的是数字, isNaN($(this).val())==true  输入的是非数字内容

  5. jQuery限制文本框的输入长度

    jQuery限制文本框输入,包含粘贴. //限制文本框的输入长度 $(function () { $(document).on("keypress", ".txt-val ...

  6. 分享一个仅0.7KB的jQuery文本框输入提示插件

    由于项目需要,找过几个jQuery文本框输入提示插件来用,但总是有不满意的地方,要么体积较大,要么使用不便,要么会出现把提示文字作为文本框的值的情况.于是我们自己的开发团队制作了这个最精简易用的输入提 ...

  7. 用Jquery控制文本框只能输入数字和字母

    用Jquery控制文本框只能输入数字和字母 $.fn.onlyNum = function () { $(this).keypress(function (event) { var eventObj ...

  8. JQuery 限制文本框只能输入数字和小数点

    $(function(){ /*JQuery 限制文本框只能输入数字*/ $(".NumText").keyup(function(){ $(this).val($(this).v ...

  9. JQuery限制文本框只能输入数字和小数点的方法

    <input type="text" class="txt NumText"  Width="100px"  /> $(func ...

随机推荐

  1. BAT机器学习面试1000题系列

    https://blog.csdn.net/sinat_35512245/article/details/78796328

  2. c# int类型的转datetime类型

    int a =20190319; DateTime  b =  DateTime.ParseExact(a.tostring(),"yyyyMMdd",System.Globali ...

  3. 网络通信实验(1)STM32F4 以太网简介

    STM32F4 以太网简介 STM32F407 芯片自带以太网模块,该模块包括带专用 DMA 控制器的 MAC 802.3(介质访问控制)控制器,支持介质独立接口 (MII) 和简化介质独立接口 (R ...

  4. 通信导论-IP数据网络基础(3)

    ICMP(IP辅助协议)--网际控制报文协议 ICMP报文种类:ICMP差错报文(终点不可达.时间超过等5种)和ICMP询问报文(回送请求和回答请求.时间戳请求和回答报文2种) ICMP是一种集差错报 ...

  5. 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法

    创建Dynamic Web Project时  显示最新Apache Tomcat  8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...

  6. MySQL数据库时间查询

    /*当前时间加1毫秒*/ SELECT DATE_ADD(NOW(),INTERVAL 1 MICROSECOND); /*当前时间减1毫秒*/ SELECT DATE_ADD(NOW(),INTER ...

  7. HTML-CSS背景渐进色

    一.分类 a>线性渐变:颜色沿着一条直线过度:从 左到右.从上到下等: b>径向渐变:圆形或椭圆形渐变,颜色不再沿着一条直线变化,而是从一个起点朝所有方向混合. 1.线性渐变语法: bac ...

  8. 31. pt-variable-advisor

    pt-variable-advisor h=192.168.100.101,P=3306,u=admin,p=admin mysqladmin var>/root/test/pt-variabl ...

  9. SpringBoot图片上传

    毕设终于写到头像上传了,本来想用Vue写来着,但是一直不顺利,还是对Vue用的不太熟.所以就用jquery写了. 首先添加以下标签 <img id="avatarPreview&quo ...

  10. mysql读写分离——中间件ProxySQL的简介与配置

    mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助. am ...