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

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

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

接下来上代码。

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>
    <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>

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

Original: https://www.cnblogs.com/yjry-th/p/10129238.html
Author: yjry-th
Title: 使用jquery实现文本框输入特效:文字逐个显示逐个消失反复循环

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574619/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java 反射机制

    基本概念 在Java 运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是 肯定的。 这种动态获取类的信息以及动态调用…

    Java 2023年5月29日
    089
  • Java并发

    Java并发 JAVA技术交流群:737698533 CAS compare and swap 比较并交换,cas又叫做无锁,自旋锁,乐观锁,轻量级锁 例如下面的代码,如果想在多线…

    Java 2023年6月6日
    086
  • 如何生成均匀随机数 C++

    #include #include #include #include using namespace std; int n=100,m=100000; double random…

    Java 2023年6月7日
    074
  • Mysql底层索引使用B+树(数据结构学习感悟)

    Mysql底层索引使用B+树(数据结构学习感悟) 注:本文仅代表个人观点,没有任何依据,如有错误,敬请斧正 考研学习数据结构,有了比之前更深的认识,或者说数据结构运用无处不在,如H…

    Java 2023年6月9日
    083
  • windows安装jdk8

    win10系统安装jdk8全过程 一 下载安装文件 jdk的安装与配置是Java学习的第一步,下面记录一下具体过程。首先根据自己系统下载对应版本。下载地址http://www.or…

    Java 2023年5月30日
    072
  • Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码

    有了源码包和 Demo 项目,我们就能够着手分析了。那么问题来了,我们对 Maven 源码并不熟悉,总不能一头扎进去看。那么,我们就用调试的方式分析吧,简单且精准。 在 Demo …

    Java 2023年6月16日
    067
  • 04-MyBatisPlus条件构造器

    一、wapper介绍 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapp…

    Java 2023年6月15日
    092
  • Spring Cloud认知学习(六):配置中心Spring Cloud Config的使用

    Spring Cloud Config 作用: 简单示例 创建配置中心 拉取配置 测试 补充: 💡上一篇介绍一个新的组件Zuul,Zuul是网关组件,对Api请求进行了统一的接收,…

    Java 2023年5月30日
    093
  • 2022-8-19 第六组 JDBC(2)

    PreparedStatement:执行sql的对象 1. SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题 1. &#x8F93…

    Java 2023年6月13日
    091
  • 记批量生成二维码并返回压缩包

    记批量生成二维码并返回压缩包 添加依赖包—如果3.5.0用不了可以切换为3.4.1 com.google.zxing core 3.5.0 com.google.zxi…

    Java 2023年6月14日
    0134
  • Python实践项目2

    #南昌理工学院人工智能学院实验室WORKSHOP实践项目 import time import random SCRIPT_NPC_SCHOOL_SISTER = [‘你好!’, …

    Java 2023年6月9日
    069
  • springboot学习

    springboot学习 官方文档:https://spring.io/projects/spring-boot 1、简介 1.1、什么是spirngboot? springboo…

    Java 2023年6月5日
    090
  • 多线程还是多进程的选择及区别

    转自:https://blog.csdn.net/lishenglong666/article/details/8557215 鱼还是熊掌:浅谈多进程多线程的选择 关于多进程和多线…

    Java 2023年5月30日
    092
  • SpringBoot使用RabbitMq实现队列和延时队列

    闲来无事看了看RabbitMq的队列,总结了一些队列的实现方法,当然,免不了各种看别人的博客哈哈哈 其中延时队列有两种方式,一种是使用TTl+死信队列实现,一种是直接用Rabbit…

    Java 2023年6月14日
    086
  • SpringBoot日志框架

    概述 项目中日志系统是必不可少的的。 目前比较流行的日志框架有 log4j、 logback等 。可能大家还不知道,这两个框架的作者是同一个人, Logback旨在作为流行的 lo…

    Java 2023年6月8日
    0118
  • SpringBoot配置文件优先级

    在开发过程中,不知道有没有这样的经历,项目实际读取的配置信息有时候总是与预期不符,今天就来研究下 SpringBoot 读取配置文件顺序。 一、SpringBoot 配置文件加载优…

    Java 2023年6月5日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球