131 lines
3.5 KiB
HTML
131 lines
3.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>tabs切换</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.title {
|
|
display: flex;
|
|
}
|
|
|
|
.title li {
|
|
margin-right: 20px;
|
|
}
|
|
|
|
.title .active {
|
|
color: red;
|
|
}
|
|
|
|
.content li {
|
|
display: none;
|
|
}
|
|
|
|
.content .active {
|
|
display: block;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="app">
|
|
<ul class="title">
|
|
<li v-for="v,i in tabList"
|
|
:class=" i == index ? 'active' : '' "
|
|
@click=" index = i "
|
|
>{{ v.title }}</li>
|
|
</ul>
|
|
|
|
<ul class="content">
|
|
<li v-for="v,i in tabList" :class="i == index ? 'active' : '' ">
|
|
<p v-for="val,idx in v.content">{{ val.title }}</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
|
|
<script>
|
|
new Vue({
|
|
el: '.app',
|
|
data: {
|
|
index: 0,
|
|
tabList: [
|
|
{
|
|
title: '社会',
|
|
content: [
|
|
{
|
|
title: '社会新闻1',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
]
|
|
},
|
|
{
|
|
title: '娱乐',
|
|
content: [
|
|
{
|
|
title: '娱乐新闻1',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
{
|
|
title: '娱乐新闻2',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
]
|
|
},
|
|
{
|
|
title: '体育',
|
|
content: [
|
|
{
|
|
title: '体育新闻1',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
title: '军事',
|
|
content: [
|
|
{
|
|
title: '军事新闻1',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
{
|
|
title: '军事新闻2',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
{
|
|
title: '军事新闻3',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
},
|
|
]
|
|
},
|
|
{
|
|
title: '科技',
|
|
content: [
|
|
{
|
|
title: '科技新闻1',
|
|
time: '2023',
|
|
text: '主体内容部分'
|
|
}
|
|
]
|
|
},
|
|
]
|
|
}
|
|
})
|
|
</script>
|
|
|
|
</html> |