javascript - Eloquent JavaScript 第 15 章气球练习
问题描述
在“Eloquent Javascript”的第 15 章中,必须创建一个 emoji 气球,用户可以通过按向上箭头来扩大 10%。另一方面,一旦用户按下箭头,它就会缩小 10%。在某个点之后,气球会爆炸(对我来说,它的大小一旦大于 70)。如果我想创建一个重置按钮,在气球爆炸后将其设置为初始大小,该怎么办?你会怎么做呢?这是我的尝试:
let p = document.querySelector("p");
let size;
function setSize(newSize) {
size = newSize;
p.style.fontSize = size + "px";
}
setSize(20);
function handleArrow(event) {
if (event.key == "ArrowUp") {
if (size > 70) {
p.textContent = "";
document.body.removeEventListener("keydown", handleArrow);
} else {
setSize(size * 1.1);
event.preventDefault();
}
} else if (event.key == "ArrowDown") {
setSize(size * 0.9);
event.preventDefault();
}
}
function reset() {
document.getElementById("myBtn").style.fontSize = "20px";
let p = document.querySelector("myBtn");
}
document.body.addEventListener("keydown", handleArrow);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Balloon</title>
</head>
<body>
<p id="myBtn"></p>
<button onclick="reset()">Reset</button>
</body>
<script src="balloon.js"></script>
</html>
此时,“myBtn”只会重置气球,但不会将爆炸改回气球表情符号。对不起,很长的信息,感谢您的关注。
解决方案
好吧,在reset()
你将字体大小改回 20px 时,但除此之外还有两件事必须再次完成:
#mybtn
将back的文本内容更改为- 再次添加 keydown 监听器
因此,该reset()
方法将变为如下:
function reset() {
var btn = document.getElementById("myBtn");
btn.textContent = ""
btn.style.fontSize = "20px";
document.body.addEventListener("keydown", handleArrow);
}
推荐阅读
- php - 在 laravel php 中下订单后更新库存
- android - Android Studio XML文件中app:endIconCheckable的作用是什么?
- ios - UserDefaults 的所有操作系统键是什么?它们是什么意思?
- reactjs - next.js 与 nginx 不上传或显示来自公共文件夹的图像
- sql - 奇怪的字体记录异常
- cuda - NVIDIA-MPS中如何控制每个客户端的资源
- flutter - 如何使用带有 auto_route 的嵌套路由在 Flutter 中的屏幕之间导航
- ios - 解构@State SwiftUI
- java - 从字符串中提取双精度
- shell - Unix wget | # 在网址中 | 语法问题