JS实现打字效果(_会闪烁)
2024-10-21 13:05:42
背景
更新博客园个人博客时,突发奇想想要将子标题的入场特效做成类似Linux命令行输命令时的样式
效果网页:LanceEst - 博客园 (cnblogs.com)
思路和代码
1 <h2 id="para">Hi, I'm Lance, and welcome to my workstation :)</h2>
#para {
width: 100%;
text-align: center;
/* 由于js是最后读取并执行的,所以为了视觉体验,先将句子藏起来 */
visibility: hidden;
}
let para = document.getElementById("para"),
str = para.textContent;
let i = 0, timer = 0;
function typing() {
if (i <= str.length) {
para.innerHTML = str.slice(0,i++) + "__";
// i++ ==> i = i;i = i + 1 加法运算是在后进行的
// 所以为了能够流畅运行,需要让 i <= str.length
// 当然,也可以 i < str.length,然后把 i++ 改成 ++i,运行效果也是一样的
timer = setTimeout(typing,150);
} else {
clearTimeout(timer);
// _闪烁效果
setInterval(function() {
if (para.innerHTML.search("__") != -1) {
// 包含"__"
para.innerHTML = str + " ";
// 注意:可以根据实际情况更改_的个数和空格的个数,在使用浏览器默认字体时,空格所占空间和_的比例为 1.5 : 1
// 因此,我这里用了2个_和3个空格
} else{
// 不包含"__"
para.innerHTML = str + "__";
}
},500);
}
}
window.onload = function() {
para.style.visibility = "visible";
typing();
}
注意:这里只显示了一些必要的代码,实际操作可以按照需求更改
最新文章
- 在iOS中实现一个简单的画板App
- python中协程
- web前端
- 数据结构与算法分析-AVL树
- c++ string 结束符‘\000’
- 时间戳转换成Date
- 每日一九度之题目1016:火星A+B
- Python常用模块的安装方法
- poj 3026 Borg Maze (BFS + Prim)
- Add controls dynamically in flowlayoutpanel
- Linux编程---I/O部分
- (译)Windsor入门教程---第五部分 添加日志功能
- 怼天怼地怼空气的Linus喜欢怎样的工作方式?
- Linux IO性能分析blktrace/blk跟踪器
- 多对多关联模型,MANY_TOMANY
- spring用注解配置,不用XML
- 转: jquery中ajax回调函数使用this
- centos7 Python3终端中敲击方向键显示「^[[C^[[D」
- App 开发步骤
- 改变vux样式