Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使文本显示变慢?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何使文本显示变慢?

Javascript 如何使文本显示变慢?,javascript,html,css,Javascript,Html,Css,如何使任何文本(例如h1tag)在我的网页上的显示速度变慢,就像CSS3tag-webkit过渡持续时间/过渡持续时间一样 我没有任何代码可以提供,因为我只是好奇,而且,我也没有在互联网上找到任何有用的东西(不能保证我已经搜索了每个页面)或“相关”问题 它是否需要JavaScript?(如果我不够清楚,我可以提供一个示例)。您可以通过CSS3动画轻松做到这一点: h1{ 动画:fadeIn 5s; } @关键帧淡入淡出{ 0%{不透明度:0;} 80%{不透明度:0;} 100%{不透明度:1

如何使任何文本(例如
h1
tag)
在我的网页上的显示速度变慢,就像
CSS3
tag
-webkit过渡持续时间
/
过渡持续时间
一样

我没有任何代码可以提供,因为我只是好奇,而且,我也没有在互联网上找到任何有用的东西(不能保证我已经搜索了每个页面)或“相关”问题


它是否需要
JavaScript
?(如果我不够清楚,我可以提供一个示例)。

您可以通过CSS3动画轻松做到这一点:

h1{
动画:fadeIn 5s;
}
@关键帧淡入淡出{
0%{不透明度:0;}
80%{不透明度:0;}
100%{不透明度:1;}
}

我淡入
这完全取决于你想做什么。如果您只想同时淡入文本(或其他动画),
css3
可能足以处理此问题

如果您试图一个字母一个字母地显示文本(例如,在RPG中可以找到),则需要代码对字符串进行迭代,并一次编写一个字母

下面是
javascript
中的一个例子,直接取自对类似问题的回答:

var showText = function (target, message, index, interval) {   
  if (index < message.length) {
    $(target).append(message[index++]);
    setTimeout(function () { showText(target, message, index, interval); }, interval);
  }
}

请注意,此方法和我之前添加的方法都使用
jQuery
$
符号是
jQuery
前缀)。如果单击指向第二个答案的链接,有一个剪报可以让你尝试这段代码。

使用javascript结合CSS3动画,你可以实现这一点,用
span
将每个字母包装起来,并根据字母的位置向其中添加CSS动画,延迟值取决于该字母,例如,你可以逐个字母淡入文本:

var$test=document.getElementById('test').innerHTML,$html='',$i;
对于($i=0;$i<$test.length;$i++){
$html+=''+($test[$i])+'';
}
document.getElementById('test')。innerHTML=$html
@关键帧foo{
0%, 10% {
不透明度:0;
}
15%, 100% {
不透明度:1;
}
}

我是示例文本
那么,你想在页面加载后淡入吗?是的,就像淡入一样@JacobGrayNope,JS不需要,比如说不透明度上的css动画可以做到这一点,并且需要很长或很短的时间,只要你想要3秒的淡入时间,有没有办法一次显示一个字母/单词?@JamesSnowy这需要非常混乱的HTML,只需使用JS就更容易了that@JamesSnowy-您必须将每个字母包装在
中,或者使用JSHm,很有趣,您想去聊天室进一步讨论这个问题吗?哦,好的,谢谢您提供
JavaScript
,非常感谢!如果我想一次淡入一个单词,你认为什么最合适
JavaScript
CSS3
?@jamessnow我认为JavaScript在这里是“最简单的”,除非你恰巧在评论中提到每个单词都有单独的标签。我正试图编写一个简单的实现,一次只写一个单词,但我对JavaScript不是很在行。我将很快编辑这篇文章,但请恕我直言:)谢谢你的一切,我期待着演示!:)@JamesSnowy请看我的编辑-我已经添加了另一个链接到一个现有的答案,逐字显示文本,并添加了一些代码正在做什么的解释。
var textToDisplay = "Even more awesome text inside here, but displayed one word at a time",
  $output = $("p");

$("button").click(function() {
  var displayInt;
  textToDisplay = textToDisplay.split(' '); //split the text variable into an array
  $output.empty(); //clear out the $output variable
  displayInt = setInterval(function() {
    var word = textToDisplay.shift(); //removes the first word ("Even") and sets the word variable to that value
    if (word == null) { return clearInterval(displayInt); } //if we're out of words to append
    $output.append(word + ' '); //else, add the word and then a space (.split(' ') will not carry over the spaces)
  }, 300); //setInterval is delayed 300ms, so a word will be added every 300ms
});