这是一只小白的突发奇想,实验多次终于有所效果。想要实现什么效果呢,
如图所示 :
要实现这个效果,大体需要两步。
第一,如何像打印似的一个一个字显示文字。要实现这个效果有多种方法。在这里我所运用的是javaScript中的substring()方法
substring()方法是干嘛的简单说一下,它用于提取字符串中介于两个指定下标之间的字符。返回的子串包括开始处的字符,但不包括结束处的字符。
首先,做几个div,放你要打印的文字(不一定是div,能取到就行,这个随意),然后通过节点取到里面的内容
<div style="display:none" id="w">你好呀,欢迎欢迎,点个赞吧! </div> <div style="display:none" id="m">嘿嘿,有错误请多指教! </div>
var word=document.getElementById("w").innerHTML; var ha=document.getElementById("m").innerHTML;
当然,动态修改title内容也有不同的方法,这里用的是 document.title="" 直接修改的,从下边的代码可以看到,substring()方法从0个字符开始,截取的长度每隔300毫秒加一,就实现了类似打印的效果
var type=setInterval(function(){ document.title=word.substring(0,index++); },300);
其实到这里,大致的效果已经做完了,剩下的只是需要 setInterval()方法与回调函数的配合,来实现循环显示
综合JS代码如下
<script language="javascript"> var index=0; var inde=0; var word=document.getElementById("w").innerHTML; var ha=document.getElementById("m").innerHTML; function hh(){ var type=setInterval(function(){ document.title=word.substring(0,index++); if(index==word.length+1){ clearInterval(type); index=0; var ty=setInterval(function(){ document.title=ha.substring(0,inde++); if(inde==ha.length+1){ clearInterval(ty); inde=0; hh(); } },300); } },300); } setTimeout(hh,2500); </script>
因为是临时想的,最后还是存在一些小bug.在每次title重新输入时,会卡顿一下,闪烁一下默认的地址,在这虚心求大神指点。
炎炎夏日,敲代码之余还要遭受秀恩爱的成吨伤害,在这诚心求职一份=。=看不见恩爱就没有伤害