JavaScript模拟终端输出

2023-05-16

利用JavaScript+CSS能够模拟出终端输入画面(类似于Linux终端画面)当然更好的代码也可以模拟出黑客帝国那样的输出画面。

CSS设置:

这里写图片描述

height:auto表示随着输出字数的增加,界面随之向下移动,如果设置为200px则是固定大小为200像素,不能动态增加高度。

background:black表示背景是黑色,当然你也可以试试其他的颜色。

字体颜色:#00FF02绿色。

JavaScript包含两个函数,一个是writeContent,这个是内容输出函数,另一个是blinkSpan这个模拟行标闪烁。

利用setTimeout函数来控制输出速度。

HTML/JavaScript代码

<head>

<style type="text/css">

    #myContent, #myContent blink{
        width:100%;
        height:auto;
        background:black;
        color: #00FF02;
        font-family:courier;
    }    
    blink{
        display:inline;

    }
    </style>
    <script type="text/javascript"> 
    var charIndex = -1;
    var stringLength = 0;
    var inputText;
    function writeContent(init){
        if(init){
            inputText = "Waiting...<br> Connecting To OmegaXYZ.com...<br>Connection Established.<br>Copyright (c) 2018 OmegaXYZ.com All Rights Reserved.<br>[root@host~] Login : xyjigsaw<br>[root@host~] password : ******<br>[root@host~] Access Is Granted!<br>//欢迎访问OmegaXYZ.com<br>[root@host~] Attention:请查找时简化关键字~";
        }
        if(charIndex==-1){
            charIndex = 0;
            stringLength = inputText.length;
        }
        var initString = document.getElementById('myContent').innerHTML;
        initString = initString.replace(/<SPAN.*$/gi,"");

        var theChar = inputText.charAt(charIndex);
        var nextFourChars = inputText.substr(charIndex,4);
        if(nextFourChars=='<BR>' || nextFourChars=='<br>'){
            theChar  = '<BR>';
            charIndex+=3;
        }
        initString = initString + theChar + "<SPAN id='blink'>_</SPAN>";
        document.getElementById('myContent').innerHTML = initString;

        charIndex = charIndex+1;
        if(charIndex%2==1){
             document.getElementById('blink').style.display='none';
        }else{
             document.getElementById('blink').style.display='inline';
        }

        if(charIndex<=stringLength){
            setTimeout('writeContent(false)',50);
            }else{
                blinkSpan();
            }  
    }

    var currentStyle = 'inline';
    function blinkSpan(){
        if(currentStyle=='inline'){
        currentStyle='none';
        }else{
        currentStyle='inline';
        }
        document.getElementById('blink').style.display = currentStyle;
        setTimeout('blinkSpan()',500);

    }
    </script>
</head>

<div id="myContent">
</div>

<script type="text/javascript">
writeContent(true);
</script>

复制上述代码进入以下链接进行测试:

http://www.omegaxyz.com/onlinetools/web-running/
效果:
这里写图片描述

更多内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2018 • OmegaXYZ-版权所有 转载请注明出处

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript模拟终端输出 的相关文章

随机推荐

  • 发布jar包到Maven中央仓库

    平时自己开发的工具类或者其他的框架的jar包一般都是放在本地 或者把代码上传到github让别人去下载然后自己打包 今天就说说如何把自己的jar包发布到Maven的中央仓库 让其他使用你的jar包的直接去中央仓库下载 如果你用的是阿里云的m
  • 机器学习术语表

    本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义 原文地址 xff1a https developers google cn machine learning glossary hl 61 zh CN A A B
  • Python单下划线与双下划线

    foo 一种约定 Python内部的名字 用来区别其他用户自定义的命名 以防冲突 foo 一种约定 用来指定变量私有 程序员用来指定私有变量的一种方式 foo 这个有真正的意义 解析器用 classname foo来代替这个名字 以区别和其
  • wxpython控件自适应窗口大小

    问题 xff1a wxpython作的窗口 xff0c 点击窗口最大化 xff0c 就会出问题 xff0c 1 窗口控件并不一起最大化 2 最大化后有些控件找不着了 xff0c 再恢复窗口 xff0c 那些消失的控件一样找不到 wxPyth
  • Python统计磁盘代码文件行数

    听说简历要求10万行代码经验 于是写了个Python脚本用来计算电脑磁盘内代码的行数 主要功能 xff1a 统计指定代码的总行数 统计每个代码单独的行数 自定义设置存储路径 设计思路 xff1a 将文件转化为txt文档 xff0c 对txt
  • 第一个Android程序

    Android Studio 是一个Android集成开发工具 xff0c 基于IntelliJ IDEA 类似 Eclipse ADT xff0c Android Studio 提供了集成的 Android 开发工具用于开发和调试 在ID
  • 面向过程与面向对象代码实例对比

    面向过程式代码 xff08 使用数据结构的代码 xff09 便于在不改动既有数据结构的前提下添加新函数 面向对象代码便于在不改动既有函数前提下添加新类 过程式代码难以添加数据结构 xff0c 因为必须修改所有函数 面向对象代码难以添加新函数
  • 机器学习

    文章目录 机器学习基本理论 基本术语与方法特征选择概述多目标优化问题 分类算法 经典算法 分类算法NSGA2算法粒子群优化算法 xff08 PSO xff09 聚类算法蚁群算法 xff08 ACO xff09 其它算法 前沿算法 NSGA2
  • 英文字母信息熵与冗余度计算Python实现

    26个英文字母在平均出现时的信息熵是4 7BIT 而去掉冗余度后的英文字母的信息熵是4 03BIT 公式 H 信息熵 61 Pi log2 Pi Pi 为每个字母在信息中出现的概率 计算公式并不复杂 取以2为底的对数的道理也很简单 因为如果
  • C++静态成员详解

    静态成员是解决同一个类的不同对象之间数据和函数共享问题的 实例属性 xff1a 一个类的所有对象具有相同的属性 xff0c 属性值可以不同 类属性 xff1a 描述类的所有对象共同特征 xff0c 对于任何对象其属性值相同 静态数据成员 用
  • 混淆矩阵简介与Python实现

    什么是混淆矩阵 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表 xff0c 以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总 这个名字来源于它可以非常容易的表明多个类别是否有混淆 xff08 也就是一个
  • JAVA CPU占用过高问题排查

    1 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714 xff0c 12406占用过高cpu 2 查找线程 使用top H p lt pid gt 查看线程占用情况 3 查找java的堆栈信息 将线程id转换成十六进
  • 【译】Python3.8官方Logging文档(完整版)

    注 xff1a 文章很长 xff0c 约一万字左右 xff0c 可以先收藏慢慢看哟 01 基础部分 日志是用来的记录程序运行事件的工具 当程序员可以通过添加日志打印的代码来记录程序运行过程中发生的某些事件时 这些事件包含了诸如变量数据在内的
  • C语言银行家算法

    算法简介 银行家算法 xff08 Banker s Algorithm xff09 是一个避免死锁 xff08 Deadlock xff09 的著名算法 xff0c 是由艾兹格 迪杰斯特拉在1965年为T H E系统设计的一种避免死锁产生的
  • 操作系统动态优先级调度算法C语言实现

    动态优先级算法 动态优先数是指在进程创建时先确定一个初始优先数 xff0c 以后在进程运行中随着进程特性的改变不断修改优先数 xff0c 这样 xff0c 由于开始优先数很低而得不到CPU的进程 xff0c 就能因为等待时间的增长而优先数变
  • 软件工程-软件小组的组织形式

    为什么要形成软件小组 大多数软件产品由一个软件专业人员不可能在有限时间内单独完成 因而 xff0c 产品必须分配给一组专业人员 xff0c 形成一个小组 在具体说软件小组的组织形式之前先介绍一下布鲁克斯法则 布鲁克斯法则 布鲁克斯是上世纪6
  • 差分分组的合作协同进化的大规模优化算法详解

    合作协同进化已经引入协同进化算法 xff0c 目的是通过分而治之的范式解决日益复杂的优化问题 理论上 xff0c 协同改 变子成分的想法是十分适合解决大规模优化问题的 然而在实践中 xff0c 没有关于问题的先验知识 xff0c 问题应如何
  • 软件工程内聚详解

    简介 内聚标志一个模块内各个元素彼此结合的紧密程度 xff0c 它是信息隐蔽和局部化概念的自然扩展 内聚是从功能角度来度量模块内的联系 xff0c 一个好的内聚模块应当恰好做一件事 它描述的是模块内的功能联系 内聚和耦合是密切相关的 xff
  • Python使用matplotlib画动态图

    机器学习需要使用python实现相应的算法 xff0c 因此学习了Matplotlib中的画图 更多内容访问omegaxyz com 当然为了能显示机器学习中每次迭代的效果与收敛速度 xff0c 需要画出动态图形 下面给出两个例子 xff0
  • JavaScript模拟终端输出

    利用JavaScript 43 CSS能够模拟出终端输入画面 xff08 类似于Linux终端画面 xff09 当然更好的代码也可以模拟出黑客帝国那样的输出画面 CSS设置 xff1a height auto表示随着输出字数的增加 xff0