📅  最后修改于: 2023-12-03 15:20:36.935000             🧑  作者: Mango
当需要让用户在文本框中输入多个不同的内容时,我们可以考虑用选项卡的方式解决。在这篇文章中,我们将通过JavaScript来实现一个简单的文本框选项卡。
<div class="tabs">
<button class="tablinks" onclick="openTab(event, 'tab1')">Tab 1</button>
<button class="tablinks" onclick="openTab(event, 'tab2')">Tab 2</button>
<button class="tablinks" onclick="openTab(event, 'tab3')">Tab 3</button>
<button class="tablinks" onclick="openTab(event, 'tab4')">Tab 4</button>
<div id="tab1" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab2" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab3" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab4" class="tabcontent">
<textarea></textarea>
</div>
</div>
我们先准备好一个包含四个选项卡的HTML结构。每个选项卡中包含一个文本框,用于用户输入内容。
/* 隐藏所有选项卡内容 */
.tabcontent {
display: none;
}
/* 设置选项卡按钮样式 */
.tablinks {
background-color: #ddd;
color: #333;
border: none;
outline: none;
margin: 5px;
padding: 10px;
cursor: pointer;
}
/* 设置选中选项卡按钮样式 */
.active {
background-color: #ccc;
}
/* 设置文本框样式 */
textarea {
width: 100%;
height: 200px;
box-sizing: border-box;
}
这里我们对选项卡和文本框进行了简单的CSS样式设置,使界面看起来更美观。
/* 根据事件触发器打开对应选项卡 */
function openTab(evt, tabName) {
// 获取所有选项卡内容
var tabcontent = document.getElementsByClassName("tabcontent");
// 隐藏所有选项卡内容
for (var i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// 获取所有选项卡按钮
var tablinks = document.getElementsByClassName("tablinks");
// 取消所有选项卡按钮的选中状态
for (var i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// 显示当前选项卡内容
document.getElementById(tabName).style.display = "block";
// 设置当前选项卡按钮为选中状态
evt.currentTarget.className += " active";
}
这里是实现选项卡切换的JavaScript代码。通过获取选项卡按钮和选项卡内容的DOM元素,我们可以使得点击对应按钮时,对应的选项卡内容显示出来。
现在我们将上面的代码整合到一起,并提供了一个完整的代码演示,你可以点击下方演示按钮查看效果。
<!DOCTYPE html>
<html>
<head>
<title>Textarea Tabs Demo</title>
<style>
/* 隐藏所有选项卡内容 */
.tabcontent {
display: none;
}
/* 设置选项卡按钮样式 */
.tablinks {
background-color: #ddd;
color: #333;
border: none;
outline: none;
margin: 5px;
padding: 10px;
cursor: pointer;
}
/* 设置选中选项卡按钮样式 */
.active {
background-color: #ccc;
}
/* 设置文本框样式 */
textarea {
width: 100%;
height: 200px;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="tabs">
<button class="tablinks" onclick="openTab(event, 'tab1')">Tab 1</button>
<button class="tablinks" onclick="openTab(event, 'tab2')">Tab 2</button>
<button class="tablinks" onclick="openTab(event, 'tab3')">Tab 3</button>
<button class="tablinks" onclick="openTab(event, 'tab4')">Tab 4</button>
<div id="tab1" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab2" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab3" class="tabcontent">
<textarea></textarea>
</div>
<div id="tab4" class="tabcontent">
<textarea></textarea>
</div>
</div>
<script>
/* 根据事件触发器打开对应选项卡 */
function openTab(evt, tabName) {
// 获取所有选项卡内容
var tabcontent = document.getElementsByClassName("tabcontent");
// 隐藏所有选项卡内容
for (var i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// 获取所有选项卡按钮
var tablinks = document.getElementsByClassName("tablinks");
// 取消所有选项卡按钮的选中状态
for (var i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// 显示当前选项卡内容
document.getElementById(tabName).style.display = "block";
// 设置当前选项卡按钮为选中状态
evt.currentTarget.className += " active";
}
</script>
</body>
</html>
在本篇文章中,我们通过JavaScript实现了一个简单的文本框选项卡。这种方式可以让用户输入多个不同的内容变得更加简单和清晰。本文仅仅介绍了最基础的实现方法,你可以根据实际需求对代码进行扩展和优化,使得选项卡效果更加完美。