关于使得文字能在网页中逐字显示的JS,网友分享的有很多,我从中选了几个试了一下,不是很理想。
第一个:
<p id="aa"></p>
<div style="display:none" id="w">人生最美的事情就是能和你相遇!</div>
<script src="jquery.min.js"></script>
<script type="text/javascript">
window.onload = type;
var index = 0;
var word = $("#w").html();
function type(){
$("#aa").html(word.substring(0,index++));
if(index > word.length) {
return;
} else {
setTimeout(type,50);
};
}
</script>
这个我是真搞不通,我承认自己是小白,试了一下,除了空白,没见到一丁点反应。然后我试着将<div>当中的“display:none”去掉,结果,一刷新,整句话齐刷刷显现出来,呢么,到底是啥意思?
第二个:
<p id="text1"></p>
<script>
var i=0;
var str="爱是一道光,绿到你发慌";
window.οnlοad=function typing(){
//获取div
var mydiv=document.getElementById("text1");
mydiv.innerHTML+=str.charAt(i);
i++;
var id=setTimeout(typing,80);
if(i==str.length){
clearTimeout(id);
}
}
</script>
这个我试了一下,可以用,能够逐字展现,但美中不足的是,不能分段!我首先试了一下加入<div>实现分段,但是,加入后就一片空白了。
我以为是其中有空内容,于是将所有文字及div 堆到一起,还不行。
然后我又试了一下加入换行符<br />,也不行,它不认为这是个换行符,只是一个文字。
第三个:
<body onLoad="show()">
<div id="txt"></div>
<script language="javascript">
content = "我对着话筒响响地吻了几下,就听到孩子那边断断续续地声音:“谢谢……爸爸,我好……高兴,好……幸福……”";
i = 0;
function show() {
str = content.substr(0, i);
txt.innerHTML = str + "|";
i++;
if (i > content.length) i = 0;
setTimeout("show()", 200);
}
</script>
</body>
这个我试了一下,可以用,但同样的只能处理一段文字,不能处理一篇文章,加入div 也好,使用li 或者p 等等来分段,都不行。
不过,这个代码中加入换行符“<br />”却可以起作用,而且页面也不会显示错误。
<body onLoad="show()"><div>
<div id="txt" style="text-indent:2em;"></div>
<script language="javascript">
content = "蓝色多瑙河之恋<br />多瑙河的浪花<br />和着小提琴的悠扬<br />溅出一朵一朵幽蓝色的蔷薇<br />昏暗的角落<br />一杯cappuccino<br />随着圆舞曲的旋转旋转渐渐温热<br />曼妙的节奏<br />两个人<br />不免荡起心中一阵又一阵憧憬的美好<br />蓝色的风<br />蓝色的风弥漫房间<br />从德国的黑林山吹向乌克兰<br />和着欢快的节奏<br />舞池中央<br />一个女孩和着风在旋转<br />她不知道她在等待着谁<br />她只知他也有着同多瑙河一样明净的心<br />和飘过多瑙河的风一样温柔的眼睛<br />风儿飘飘<br />女孩的嘴角漾起微笑<br />仿若多瑙河的蓝色河水一般清澈 ";
i = 0;
function show() {
str = content.substr(0, i);
txt.innerHTML = str + "|";
i++;
if (i > content.length) i = 0;
setTimeout("show()", 200);
}
</script>
</div>
</body>
效果预览:https://www.ximenfeixue/article/1145.html
但是,依然还是有两个瑕疵:
一个是,每段末尾,都会显示一下“<”符号,这个符号是“<br />”的左边部分,但是如果把“<br />”写成“br />”则失去换行的效果。
另一个是,content 当中的文字除了第一行遵守父级css规则外,其他各行都不再遵守。于是,第一段首行可以缩进两字符,第二段开始却不行。
到目前为止,我也没研究出到底该咋办!
更多推荐
html网页中用最简单的JS实现文字逐个显示的效果
发布评论