- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将从服务器端接收一些内容。我尝试的是在显示此内容时做出打字效果。
$("#dislay").click(function() {
//this is the dummy content i will recieve from server
var contentFromServer = "Smile spoke total few great had never their too. Amongst moments do in arrived at my replied. Fat weddings servants but man believed prospect. Companions understood is as especially pianoforte connection introduced. Nay newspaper can sportsman are admitting gentleman belonging his. Is oppose no he summer lovers twenty in. Not his difficulty boisterous surrounded bed. Seems folly if in given scale. Sex contented dependent conveying advantage can use. Do play they miss give so up. Words to up style of since world. We leaf to snug on no need. Way own uncommonly travelling now acceptance bed compliment solicitude. Dissimilar admiration so terminated no in contrasted it. Advantages entreaties mr he apartments do. Limits far yet turned highly repair parish talked six. Draw fond rank form nor the day eat. In post mean shot ye. There out her child sir his lived. Design at uneasy me season of branch on praise esteem. Abilities discourse believing consisted remaining to no. Mistaken no me denoting dashwood as screened. Whence or esteem easily he on. Dissuade husbands at of no if disposal.";
var typerText = "";
var contentLength = contentFromServer.length;
var count = 0;
var typingSpeed = 100000 / contentLength;
var typer = setInterval(function() {
if (count > contentFromServer.length) { clearInterval(typer); }
typerText += contentFromServer.charAt(count);
document.getElementById("dislayArea").innerHTML = "" + typerText + "";
count++;
}, typingSpeed);
//reset the interval on click of button
$("#dislay").click(function() { clearInterval(typer); });
});
div {
border: 1px solid gray;
padding: 8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="dislay" type="button">Display Content</button>
<div id="dislayArea"></div>
问题是我不知道我是否使用了正确的方法。也就是说,不确定使用 for 循环或使用 setInterval(我正在使用的)是否会更好。或者有更好的方法来做到这一点。
最佳答案
使用setInterval()
肯定比loop语句
更好,因为使用loop会阻塞你的JS执行,你将无法在同一时间执行某些操作。为了避免这种情况,您可以根据字符串长度使用可变速度(正如您所做的那样),但在我看来,这不会提供良好的视觉体验。
我还建议看看typed.js图书馆。 (可能还有其他库可以实现相同的任务,但我有使用这个库的经验,它效果很好!)使用该库可以通过各种选项更灵活地控制任务,为什么要重新发明轮子?
这是typed.js的示例片段:
var typed = null;
$("#dislay").click(function() {
if(typed != null)
typed.destroy();
var contentFromServer = "Smile spoke total few great had never their too. Amongst moments do in arrived at my replied. Fat weddings servants but man believed prospect. Companions understood is as especially pianoforte connection introduced. Nay newspaper can sportsman are admitting gentleman belonging his. Is oppose no he summer lovers twenty in. Not his difficulty boisterous surrounded bed. Seems folly if in given scale. Sex contented dependent conveying advantage can use. Do play they miss give so up. Words to up style of since world. We leaf to snug on no need. Way own uncommonly travelling now acceptance bed compliment solicitude. Dissimilar admiration so terminated no in contrasted it. Advantages entreaties mr he apartments do. Limits far yet turned highly repair parish talked six. Draw fond rank form nor the day eat. In post mean shot ye. There out her child sir his lived. Design at uneasy me season of branch on praise esteem. Abilities discourse believing consisted remaining to no. Mistaken no me denoting dashwood as screened. Whence or esteem easily he on. Dissuade husbands at of no if disposal.";
var typedOptions = {
strings: [contentFromServer],
typeSpeed: 60,
showCursor: false
};
typed = new Typed("#displayArea", typedOptions);
});
div {
border: 1px solid gray;
padding: 8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/typed.js/2.0.8/typed.js"></script>
<button id="dislay" type="button">Display Content</button>
<div id="displayArea"></div>
关于javascript - 使用 javascript/Jquery 编写具有打字效果的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51340418/
如何使用打字模块来创建可以是某些字符串的类型? 例如。假设我需要一个类型 CondOperator ,可以是以下任何字符串: ['=', '>', '=', '', '!='] 我希望 CondOpe
我目前正在从事一个处理语言学习(即德语、中文等...)的项目,其中有一个功能我们遇到了问题 - 简而言之,我们正在尝试显示“幽灵” "文本(非常淡的灰色)并允许用户键入覆盖此文本。 该项目将有数千个不
typing 模块提供了一些方便的功能,以实现更好的可读性和对键入代码正确性的信心。 最好的功能之一是您可以编写如下内容来描述具有指定元素类型的输入字典。 def myFun(inputDict:Di
我想创建一个 Array 类型,它应该是可订阅 并且是 typing.List 和 numpy 的联合体.ndarray 类型。我知道 numpy 没有 stub ,但是 those numpy st
我想写一个groupBy功能,到目前为止,类型系统对我的工作不太满意。 export function group( data: T[], groupBy: keyof T ): {
我正在努力解决打字问题并提出以下问题 您在项目的 node_modules 根文件夹下找到的 typings 文件夹是什么。这是 tsc 查找 .d.ts 文件的默认位置吗?我如何在源文件中使用它们。
在打字时使用 typing.Any 和 object 有什么区别吗?例如: def get_item(L: list, i: int) -> typing.Any: return L[i] 相
我刚开始使用 TypeScript,所以请记住。我正在尝试在 React/TS 中实现一个简单的文件上传。一般来说,我认为我不明白如何初始化对象,比如在 useState 中,并正确处理可能性。例如,
我想这是python 3.7(不确定)附带的,不仅可以将变量名传递给函数,还可以传递变量的类型。我想知道的是是否有可能传递特定类的类型。 你可以通过同样的方式: def foo_func(i: int
有没有办法在 TypeScript 类中拥有动态对象属性,并为 TypeScript 添加动态类型? 我见过类似的问题,但没有一个像这样的完整示例 - interface IHasObjectName
我正在尝试将类型添加到一些数字 Racket 代码中,希望能使其更快,但我在下面的代码中遇到了 for/list 宏扩展的问题。 (: index-member ((Listof Any) (List
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 2年前关闭。 Improve this
我在 Scala 中有一个打字问题的小问题。在 Haskell 中,我可以这样做: add :: (Num a) => (a,a) -> (a,a) -> (a,a) 这样,我就可以扔进add任何支持
我想实现这个。 当文本表单字段处于非事件状态时,其背景和填充颜色将为灰色。但是当我打字或它处于事件模式时,它的背景颜色将为白色。 如何实现这种行为? 最佳答案 试试这个: class CustomTe
我想实现这个。 当文本表单字段处于非事件状态时,其背景和填充颜色将为灰色。但是当我打字或它处于事件模式时,它的背景颜色将为白色。 如何实现这种行为? 最佳答案 试试这个: class CustomTe
这可以模拟击键: import pyautogui pyautogui.typewrite('hello world!', interval=0.1) 除了: 它写的是 hello world§(使用
我正在寻找 python 中的东西因为它是动态类型而更容易编程的例子? 我想将它与 Haskell 类型系统进行比较,因为它的静态类型不像 c# 或 java 那样妨碍。我可以像在 python 中一
当运行 typings 命令时,我总是得到错误: AppData\Roaming\npm\node_modules\typings\node_modules\strip-bom\index.js:2
我正在学习 Ruby,我遇到了一个关于打字的主要概念问题。请允许我详细说明为什么我不理解范式。 假设我像您在 Ruby 中一样为简洁的代码进行方法链接。我必须准确地知道链中每个方法调用的返回类型是什么
只是关于打字的快速问题。 如果我输入 ghci :t [("a",3)]我回来了[("a",3)] :: Num t => [([Char], t)] 在文件中,我将类型定义为: type list
我是一名优秀的程序员,十分优秀!