1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

jquery实现文本框输入特效:反复循环文字逐个显示逐个消失

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

<!DOCTYPE html>  <html>  	<head>  		<meta charset="UTF-8">  		<title></title>      <script type="text/javascript" src="../tu/jquery-1.11.3.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 = ["期权记", "JS_期权记", "PHP_期权记", "jquery_期权记", "HTML_期权记"];//定义要显示的字符串数组      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>

具体效果点上面(运行代码)来看

大概效果我GIF自己做了一个动态图片:

原文链接:https://www.qiquanji.com/post/7167.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: