javascript - 我想使用javascript每秒更改“Hello World”的字体系列
问题描述
它只更改一次字体系列,而它应该每秒更改一次字体系列。请让我知道问题出在哪里以及为什么它不起作用。谢谢!
</head>
<body>
<h1 id="js_world">Hello World</h1>
<script>
window.onload = function(){
var x = document.getElementById("js_world");
x.style.fontFamily = "helvetica";
function changeFontFamily(){
if (x.style.fontFamily === "helvetica"){
x.style.fontFamily = "times new roman";
}
else if (x.style.fontFamily === "times new roman"){
x.style.fontFamily = "sans-serif";
}else if(x.style.fontFamily === "sans-serif"){
x.style.fontFamily = "helvetica"
}
};
window.setInterval(changeFontFamily,1000);
}
</script>
</body>
解决方案
我建议使用这种方法,它使用setTimeout
并将可能的字体存储在一个数组中。
var text = document.getElementById("text");
var fonts = ["Courier New", "Times New Roman", "Roboto"];
var i = 0;
function changeFont(){
if(i!=fonts.length){
text.style.fontFamily=fonts[i];
i++;
}else{
i=0;
}
setTimeout(changeFont, 1000);
}
changeFont();
@import url('https://fonts.googleapis.com/css?family=Roboto');
<p id="text">Changing font? Wowza!</p>
如果您坚持使用自己的,可以查看Rap Sherlock 的答案。
推荐阅读
- docker - 如何使用修改后的本地 Docker 容器而不是 Docker 本地注册表中的早期版本
- java - 在spring boot jpa中的多对一映射中,外键未在子表中更新
- scala - Spark中使用键值对RDD构建kdtree
- c - 我在这里遇到分段错误,而它与字符串一起使用?
- pandas - 为两个 Pandas 数据帧设置等效的 dtype
- bixby - 如何在 Bixby 中存储数据
- hyperledger-fabric - 安装频道时出错:“错误:出现意外状态:BAD_REQUEST -- 未知联盟名称:SampleConsortium”
- google-analytics-firebase - 在 GAnalytics 中跟踪 AJAX 请求
- javascript - 如何使用 ES6 Symbol 处理 node.js 中的 new Error()?
- java - 如何在android中为google signIn accountPicker对话框添加取消按钮