HTML中的TAB:默认选择第一个TAB
TABS in HTML: Select first TAB by default
我在HTML中尝试TABBING。我正在使用W3SCHOOLS的教程。
下面是源代码。它工作得很好,但我面临的问题是默认选择第一个选项卡,这在本教程中是缺失的。我希望第一个选项卡应该自动选择时,页面加载和内容应该自动显示。
<!DOCTYPE html>
<html>
<style>
body {font-family: "Lato", sans-serif;}
ul.tab {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
/* Float the list items side by side */
ul.tab li {float: left;}
/* Style the links inside the list items */
ul.tab li a {
display: inline-block;
color: black;
text-align: center;
padding: 14px 16px;
text-decoration: none;
transition: 0.3s;
font-size: 17px;
}
/* Change background color of links on hover */
ul.tab li a:hover {
background-color: #ddd;
}
/* Create an active/current tablink class */
ul.tab li a:focus, .active {
background-color: #ccc;
}
/* Style the tab content */
.tabcontent {
display: none;
padding: 6px 12px;
-webkit-animation: fadeEffect 1s;
animation: fadeEffect 1s;
}
@-webkit-keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
@keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
</style>
<body>
<h3>Fade in Tabs</h3>
<ul class="tab">
<li><a href="#" class="tablinks" onclick="openCity(event, 'London')">London</a></li>
<li><a href="#" class="tablinks" onclick="openCity(event, 'Paris')">Paris</a></li>
<li><a href="#" class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</a></li>
</ul>
<div id="London" class="tabcontent">
<h3>London</h3>
<p>London is the capital city of England.</p>
</div>
<div id="Paris" class="tabcontent">
<h3>Paris</h3>
<p>Paris is the capital of France.</p>
</div>
<div id="Tokyo" class="tabcontent">
<h3>Tokyo</h3>
<p>Tokyo is the capital of Japan.</p>
</div>
<script>
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
</script>
</body>
</html>
我应该在Javascript中做什么改变来默认选择第一个选项卡?我在for循环中尝试了以下行,但没有工作:
tablinks[0].className += " active";
在第一个LI
的锚标记中添加class=active
,并在下面的div中更新以下内容:
div id=London class=tabcontent style=display:block
这是一个工作的jsfield
这是一种纯粹的javascript方式,只需将此添加到脚本
document.getElementsByClassName('tablinks')[0].click()
它模仿了当页面加载
<!DOCTYPE html>
<html>
<style>
body {font-family: "Lato", sans-serif;}
ul.tab {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
/* Float the list items side by side */
ul.tab li {float: left;}
/* Style the links inside the list items */
ul.tab li a {
display: inline-block;
color: black;
text-align: center;
padding: 14px 16px;
text-decoration: none;
transition: 0.3s;
font-size: 17px;
}
/* Change background color of links on hover */
ul.tab li a:hover {
background-color: #ddd;
}
/* Create an active/current tablink class */
ul.tab li a:focus, .active {
background-color: #ccc;
}
/* Style the tab content */
.tabcontent {
display: none;
padding: 6px 12px;
-webkit-animation: fadeEffect 1s;
animation: fadeEffect 1s;
}
@-webkit-keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
@keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
</style>
<body>
<h3>Fade in Tabs</h3>
<ul class="tab">
<li><a href="#" class="tablinks" onclick="openCity(event, 'London')">London</a></li>
<li><a href="#" class="tablinks" onclick="openCity(event, 'Paris')">Paris</a></li>
<li><a href="#" class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</a></li>
</ul>
<div id="London" class="tabcontent">
<h3>London</h3>
<p>London is the capital city of England.</p>
</div>
<div id="Paris" class="tabcontent">
<h3>Paris</h3>
<p>Paris is the capital of France.</p>
</div>
<div id="Tokyo" class="tabcontent">
<h3>Tokyo</h3>
<p>Tokyo is the capital of Japan.</p>
</div>
<script>
document.getElementsByClassName('tablinks')[0].click()
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
</script>
</body>
</html>
添加
document.getElementsByClassName('tablinks')[0].click()at script
添加到CSS:
div[class*="tabcontent"]:first-of-type {
display: block;
}
将标记更新为:
<a href="#" class="tablinks active" onclick="openCity(event, 'London')">London</a>
或者,也为内容元素实现一个活动类:
/* make this more specific to avoid coloring content elements */
ul.tab li a:focus, ul.tab li a.active {
background-color: #ccc;
}
/* add this to the CSS */
.tabcontent.active {
display: block;
}
/* update the markup to add the class */
<div id="London" class="tabcontent active">
相关文章:
- Jquery自动完成:如果没有选择任何项目,则使tab键选择第一个项目
- 选择 UI-TAB 的模板
- Ajax Tab - javascript 来检查选择了哪个选项卡
- 用于使用 Tab 键选择项目的事件
- 在按 Tab 键时选择文本区域文本
- 每次按 TAB 键时选择不同的单词
- 不能使用Tab键选择剑道多选的数据
- bootstrap3-typeahead用TAB选择第一个元素
- 用鼠标点击输入和用tab选择有什么区别?
- 如何取消选择文本框的文本,当它得到焦点时,当tab被按下
- 文本框检测输入键后TAB键选择自动补全字
- Angular TAB选择打开新页面,而不是在同一页面中打开
- 按钮的背景颜色没有通过tab键选择而改变
- Zurb foundation 5.2 -在回发时维护TAB选择/状态
- ExtJS 4.2 - Tab 在组合框中选择错误的值,键入快速键入时为 typeAhead:true
- 如何使用 Tab 键选择Zebra_Datepicker
- jQuery选择插件:捕获焦点以在Tab时打开
- Jquery带有下拉选择器的选项卡选择器,下拉选择器不匹配TAB开关
- HTML中的TAB:默认选择第一个TAB
- 剑道多选择与tab键选择