2024-10-16
接下来,我们将创建一个简单的打字辅助工具,用户可以在文本框中输入单词,并根据他们所输入的内容自动提供常见的词语建议。这个想法是通过键盘事件来实现“建议”功能。
首先,我们为设置一个包含文本输入字段和一些CSS样式的HTML结构。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打字助手</title>
<style>
.typingAssistant {
margin: 20px;
border: 1px solid #ccc;
padding: 5px;
width: 300px;
height: 100px;
font-size: 24px;
}
</style>
</head>
<body>
<textarea id="typingAssistantText" placeholder="输入你的单词..."></textarea>
<div class="suggest">
<p>常见的词语建议</p>
<ul id="suggestionsList"></ul>
</div>
<script src="script.js"></script>
</body>
</html>
现在,我们将实现用户可以通过键盘输入文本并显示建议的单词功能。
document.addEventListener('DOMContentLoaded', function() {
const typingAssistantText = document.getElementById("typingAssistantText");
const suggestionsList = document.getElementById("suggestionsList");
// 更新建议基于当前输入
function updateSuggestions() {
const userInput = typingAssistantText.value.toLowerCase();
const commonWords = ["apple", "banana", "cherry", "date", "elderberry"];
let suggestedWords = [];
if (userInput.length > 1) {
for (let i = 0; i < commonWords.length; i++) {
if (commonWords[i].toLowerCase().startsWith(userInput)) {
suggestedWords.push(commonWords[i]);
}
}
// 对排序和避免重复建议进行处理
suggestedWords.sort((a, b) => a.localeCompare(b));
suggestedWords = suggestedWords.slice(0, 5); // 显示最多前5个常见的词语
suggestionsList.innerHTML = "";
for (let i = 0; i < suggestedWords.length; i++) {
const listItem = document.createElement("li");
listItem.textContent = suggestedWords[i];
suggestionsList.appendChild(listItem);
}
} else {
suggestionsList.innerHTML = "<p>无建议</p>";
}
}
// 当输入字段变化时更新建议
typingAssistantText.addEventListener('input', updateSuggestions);
// 初始化基于空文本框的建议显示
updateSuggestions();
});
textarea
用于输入和一个区域显示常见的词语建议。DOMContentLoaded
事件时,这在HTML文档被解析和渲染后发生。这个示例展示了如何使用键盘事件动态地提供基于当前输入的建议。这只是一个许多你可以在前端应用中利用键盘交互增强用户体验的方式之一。 ### 解释和代码
我们设计了一个简单的表单,其中包括一个<textarea>
用于用户输入文本,并且在下方显示一些常见的词语建议。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打字助手</title>
<style>
.typingAssistant {
margin: 20px;
border: 1px solid #ccc;
padding: 5px;
width: 300px;
height: 100px;
font-size: 24px;
}
</style>
</head>
<body>
<textarea id="typingAssistantText" placeholder="输入你的单词..."></textarea>
<div class="suggest">
<p>常见的词语建议</p>
<ul id="suggestionsList"></ul>
</div>
<script src="script.js"></script>
</body>
</html>
我们编写了一个JavaScript脚本来实现基于当前输入的建议功能。
document.addEventListener('DOMContentLoaded', function() {
const typingAssistantText = document.getElementById("typingAssistantText");
const suggestionsList = document.getElementById("suggestionsList");
// 更新建议基于当前输入
function updateSuggestions() {
const userInput = typingAssistantText.value.toLowerCase();
const commonWords = ["apple", "banana", "cherry", "date", "elderberry"];
let suggestedWords = [];
if (userInput.length > 1) {
for (let i = 0; i < commonWords.length; i++) {
if (commonWords[i].toLowerCase().startsWith(userInput)) {
suggestedWords.push(commonWords[i]);
}
}
// 对排序和避免重复建议进行处理
suggestedWords.sort((a, b) => a.localeCompare(b));
suggestedWords = suggestedWords.slice(0, 5); // 显示最多前5个常见的词语
suggestionsList.innerHTML = "";
for (let i = 0; i < suggestedWords.length; i++) {
const listItem = document.createElement("li");
listItem.textContent = suggestedWords[i];
suggestionsList.appendChild(listItem);
}
} else {
suggestionsList.innerHTML = "<p>无建议</p>";
}
}
// 当输入字段变化时更新建议
typingAssistantText.addEventListener('input', updateSuggestions);
// 初始化基于空文本框的建议显示
updateSuggestions();
});
HTML 结构:
textarea
用于用户输入文本,提供一个方便的方式来输入内容。JavaScript 实现:
updateSuggestions
函数接受用户输入并进行处理:首先将文本转换为小写以便进行比较,然后检查输入中的前几个字符是否与常见的词语列表中的一部分匹配。如果是,则添加到“建议”列表中。更新建议:
updateSuggestions
函数,这将导致根据新的输入内容显示相应的建议。这个示例展示了如何使用JavaScript动态地为用户提供与当前文本输入相关的建议。希望这段代码对你有所帮助!