将文本添加到 div(或其他元素)的底部 - 模拟聊天控制台

2023-12-09

我有一个 div 应该在文本输入到输入框中时收集文本(现在它只是重现输入,但稍后它应该产生半智能响应。)

我希望文本出现在 div 的底部,渐变的暗端。我希望新文本始终位于底部,旧文本始终位于上部滚动区域的灰色区域。In other words, I'd like to reach the effect like in a terminal or on a chat console.

页面在这里:http://mindseyetutoring.com/interrogate.html

这是我的代码(我将消除 ajax 方面以最小化地表示问题):

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="interroStyle.css">
    <script src="jquery/jquery.js"></script>
    <script>
        function process(){
           $('#userInput').keypress(function(e){
              if (e.keyCode == 13){
                 var userTxt = $("#userInput").val();
                 $("#prisonerResponse").html(userTxt);
              }
           })
        }
    </script>
    </head>
    <body onload = "process()">
        <p id="prisoner"> Prisoner One </p>
        <br>
        <p id="command" >address the prisoner:</p>
        <input type="text" id="userInput" />
        <div class="transcript" id="prisonerResponse">
                <p>
                </p>            
        </div>
    </body>
</html>

和一些CSS:

#prisonerResponse {
    overflow: scroll;
    width: 350px;
    height: 100px;
    display: inline-block;
    margin: 10px;
    position: relative;
}
#prisonerResponse:before {
    content:"";
    width: 350px;
    height: 100px;
    position: fixed;
    background: -webkit-linear-gradient(rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

我会用不同的方式来解决这个问题。也许我错了,但听起来您想模拟聊天控制台,以相反的顺序显示文本行。在那种情况下我会使用UL/LI结构包裹在DIV;不知怎的,我相信这是最快的方法,因为我们不关心前面的行 - 我们只是附加新的行,在 UL 元素的末尾添加另一个 LI。检查片段

// JavaScript - Tested on IE11, Firefox, Chrome, Opera and Safari
window.onload = function(){
    var div = document.getElementById("wrapper"),
        ul = document.getElementById("list"),
        input = document.getElementById("text"),
        flag = false, 
        li;
    input.onkeypress = function(e){
        e = e || window.event;
        var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
        if (charCode == 13) {
            li = document.createElement("LI");      
            li.innerHTML = input.value;
            ul.appendChild(li);
            li.scrollIntoView();
            if(ul.offsetHeight >= div.offsetHeight && flag !== true){
                ul.style.height = div.offsetHeight + "px";
                flag = true;
            }
            document.getElementById("text").value = "";
        }   
    };
};

/* CSS */
#wrapper {
    position:relative; height:200px; width:300px; background-color:#fff;
}  
#list {
    margin:0px; padding:0px; position:absolute; bottom:0px; left:0px; width:inherit; overflow:hidden; overflow-y:scroll;
}
#text { 
    width:300px; 
}

<!-- HTML -->
<div id="wrapper"> 
    <ul id="list"></ul>
</div> 
<input type="text" id="text" name="text" value="" />

检查工作情况jsBin(在 Firefox、Chrome、Opera 和 Safari 上)或jsFiddle(在 IE11 上)

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

将文本添加到 div(或其他元素)的底部 - 模拟聊天控制台 的相关文章

随机推荐

  • 将 iPad 缓存增加超过 50 MB?

    我正在使用清单开发一个离线 Web 应用程序 并且想知道 iPad 上的最大缓存大小 我做了一些测试 期间有人问我是否要将缓存增加到 10 MB 25 MB 和 50 MB 因此 50 MB 以下的所有内容似乎都可以正常工作 我禁用了互联网
  • 如何将文本添加到活动的 UITextField

    我有几个UITextField的和一个UIButton 如果我点击UIButton 我想在活动中放置一些静态文本UITextField 所以像这样 IBAction func buttonEen sender UIButton active
  • 将文本转换委托给“插件”Android 应用程序,事先未知

    Context 我们的应用程序向用户显示 HTML 抽认卡 我们添加了几层 过滤器 来满足不同的用户群体 为了满足chess爱好者 我们转换任何 FEN rnbqkbnr pp1ppppp 8 2p5 4P3 5N2 PPPP1PPP RN
  • PyQt - 如何打开/关闭拼写检查

    我使用以下内容作为编辑器拼写检查器的基础 我想制作一个自动拼写检查按钮 按下该按钮将使拼写检查器工作 而未按下时 拼写检查器不应突出显示或建议任何内容 您知道类似于 LibreOffice OpenOffice 自动拼写检查工具栏按钮吗 我
  • 可可-Applescript NSOpenPanel?

    我该如何做NSOpenPanel在可可 Applescript 中 有什么好的教程吗 我熟悉 Applescript 但不太熟悉 Cocoa 部分 我需要一个nib对于 NSOpenPanel 我正在做一个自动操作 看我之前的问题 肖恩 斯
  • 如何在对话期间以编程方式将号码输入到 Android 中的电话应用程序屏幕中

    我想通过我的 Android 程序在对话期间以编程方式将号码输入到 Android 手机的电话应用程序中 像这样的操作 1 打开拨号键盘并 2 键入号码 例如 当您拨打该电话号码并且该电话号码有用于呼叫目的地的分机电话号码时 例如 电话号码
  • Tkinter 中 GStreamer 的视频输出?

    有谁知道我将如何使用 tkinter 窗口作为 python 内的视频接收器 管道的输出 我已经找到了许多其他 GUI 系统的方法 但我不想必须同时使用 tkinter 和其他东西 xxx 预先感谢 x 这对我在 Windows 32 位上
  • 对象必须实现 IConvertible

    对象必须实现 IConvertible 描述 执行当前 Web 请求期间发生未处理的异常 请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息 异常详细信息 System InvalidCastException 对象必须实现 I敞篷车
  • 如何在Python中将文本中每个句子的开头大写? [复制]

    这个问题在这里已经有答案了 我想创建一个函数 将一个文本字符串作为输入 并且我想将标点符号后面的每个字母大写 问题是 字符串不像列表那样工作 所以我真的不知道该怎么做 我尝试这样做 但它似乎不起作用 def capitalize strin
  • iOS相机焦点值

    有什么办法可以从具有自动对焦功能的 iPhone 相机中获取焦点值吗 我想使用这些数据来计算 iPhone 到焦点对象的距离 显然这是一个老问题 但由于自 iOS8 以来有一个获取 镜头值 的选项 它应该出现在这里 从iOS 8开始你可以通
  • cx_Freeze 错误:resource_filename() 仅支持 .egg,不支持 .zip

    我有一个完全工作的基于 wxpython 的应用程序 全部用 Python 编写 我想制作一个exe 所以我使用了cxFreeze 在构建过程中 有许多模块似乎丢失了 有时这应该不会造成问题 但是当我运行应用程序时 它给了我来自 MySQL
  • 函数隐藏和重载的区别

    我找不到函数隐藏和重载之间的任何区别 由于函数隐藏是派生类中存在的函数并隐藏基类的函数 两者的函数名称相同 重载 派生类和基类具有相同的名称但不同的签名 class A void print int class B public A voi
  • ant build 中使用 aapt 进行紧缩/资源打包使用其他项目的缓存

    我有两个使用通用库的 Android 应用程序 每个项目都为启动屏幕和其他一些项目定义了自己的背景图像 这些图像在两个应用程序中具有相同的名称 当我从 Eclipse 构建 运行时 每个应用程序都使用正确的背景图像 但是 当我运行 ant
  • jqueryposition() 在 safari 和 chrome 中无法正常工作

    我以前曾见过这个问题一两次 但从未有过适用于我的问题的答案 据我所知 我有一个单击链接时出现的工具提示 我根据链接的位置设置工具提示的位置 如下所示 tooltip css left this position left 这在 FF IE
  • 比较两个数组并用第三个数组中的值替换重复项

    var array1 a b c d var array2 a v n d i f var array3 1 2 3 4 5 6 刚开始学习Javascript 我不知道如何比较array2给那些在array1如果是这样 请将其替换为相应的
  • 一个简单的 SQL Select 查询来抓取社交图中所有有联系的人?

    爬取社交图谱的最短或最快的 SQL 选择查询或 SQL 过程是什么 想象一下我们有这张表 UId FriendId 1 2 2 1 2 4 1 3 5 7 7 5 7 8 5 9 9 7 我们这里有两个人 我正在谈论一个 sql 查询或过程
  • 嵌入式 Python 无法使用 NumPy 指向 Python35.zip - 如何修复?

    好的 这是来自 Python 网站的基本示例 用于简单说明runpy exe运行下面的 Python 脚本 引用 Python 包含并链接到后 在 x64 Windows 上使用 Visual Studio 2015 可以正常工作pytho
  • Spring Data mongodb-复制集合

    我将 spring 数据与 mongodb 一起使用 我想使用代码而不是命令行将文档从一个集合复制到另一个集合 有没有办法在不循环所有文档并执行 插入 的情况下执行此操作 除非像这样的命令一样使用它 mongoTemplate execut
  • 错误:超时间隔必须小于 2^32-2。参数名称: dueTm

    我的班级模型中有一对多关系 例子 单个角色可以附加多个权限 因此有两张表 一张来自角色 一张用于每个角色的权限 现在我有一个角色类 该角色类又具有作为该类成员的权限列表 当我需要进行更新时 我实例化一个transactionscope对象
  • 将文本添加到 div(或其他元素)的底部 - 模拟聊天控制台

    我有一个 div 应该在文本输入到输入框中时收集文本 现在它只是重现输入 但稍后它应该产生半智能响应 我希望文本出现在 div 的底部 渐变的暗端 我希望新文本始终位于底部 旧文本始终位于上部滚动区域的灰色区域 In other words