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

摘要:
两天前,我在一个网站的输入框中看到了一个小的特殊效果:文本一个一个地显示,在达到字符串的最大长度后一个接一个地消失,然后重新显示并消失,循环显示字符串数组。我对这个小特效有点好奇,所以我今天尝试用jquery编写一个简单的演示,最终得到了效果。首先,让我们看看实现后的效果:接下来,让我们开始编写代码。DOCTYPE html˃文本逐一出现并逐一消失˂!

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

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

接下来上代码。

<!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实现文本框输入特效:文字逐个显示逐个消失反复循环》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇修改网口速度mii-tool和ethtoolUbuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh &amp;gt; /dev/null; fi'下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

phoenix 索引实践

准备工作    创建测试表    CREATE TABLE my_table ( rowkey VARCHAR NOT NULL PRIMARY KEY, v1 VARCHAR, v2 VARCHAR, v3 VARCHAR ); UPSERT INTO my_tabl...

MySQL-in和or走不走索引

关于MySQL中in和in走不走索引的问题---具体情况得看优化器自己决定,但大致的规律是:in或or的数据量占比越大越可能不走,比如几百条数据我in上十来条他是会走索引的,但我in上几百条他可能就不走索引了。下面是测试: 简单测试几条数据为例      可以在上面的测试中发现,in是走索引的。 测试1: 测试2:  测试3: 测试4:  可...

jquery validate 详解一

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src="http://t.zoukankan.com/js/jquery.js" type="text/javascript"></script>&...

jquery/js记录点击事件,单击次数加一,双击清零

目的:点击按钮,点击后在网页上显示点击次数,双击清零 实现:js或者jquery 代码如下: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE HTML> <html&g...

mysql之面试问题总结

问题1、char 与varchar的区别?        varchar是变长而char的长度是固定的。如果你的内容是固定的大小,char性能更好。       char[4] 与varchar[4]   存储字母a a占一个字符  varchar长度为4但是占此时为一个字符长度   而char则占4个字符 问题2、truncate 和delete 区别是...

PHP学习(字符串操作)

   在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" "。单引号和双引号到底有啥区别呢?  PHP允许我们在双引号串中直接包含字串变量。而单引号串中的内容总被认为是普通字符。PHP中用英文的点号.来连接两个字符串。(注意输出的区别) 1 <?php 2 $i='I'; 3 $love=' Love'; 4 $you=...