gpt4 book ai didi

javascript - 使用 jQuery 设置默认内容

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:48 25 4
gpt4 key购买 nike

在下面的代码中,默认的主要内容是空的。除非我点击任何底部导航栏按钮,否则不会显示任何内容。

我想将 content-1menu-1 (其各自的按钮)设置为默认值,即当用户打开网页时他们首先看到的按钮是黑色的,表示它处于事件状态。

我尝试使用 else 语句但它不起作用:

    // set menu-1 as default
else {
$('.menu-1').addClass('default')
$('.content').addClass('default')
}

找到下面的完整代码:

$(document).ready(function() {

// only show menu-1
$('.menu-1').click(function() {
if ($('.menu-2, .menu-3').hasClass('active')) {
$('.menu-2, .menu-3').removeClass('active');
$('.content-2, .content-3').removeClass('active');
}

// set menu-1 as default
// else {
// $('.menu-1').addClass('default')
// $('.content').addClass('default')
// }

$('.menu-1').addClass('active');
$('.content-1').addClass('active');
});

// only show menu-2
$('.menu-2').click(function() {
if ($('.menu-1, .menu-3').hasClass('active')) {
$('.menu-1, .menu-3').removeClass('active');
$('.content-1, .content-3').removeClass('active');
}

$('.menu-2').addClass('active');
$('.content-2').addClass('active');
});

// only show menu-3
$('.menu-3').click(function() {
if ($('.menu-2, .menu-1').hasClass('active')) {
$('.menu-2, .menu-1').removeClass('active');
$('.content-2, .content-1').removeClass('active');
}

$('.menu-3').addClass('active');
$('.content-3').addClass('active');
});
});
.container {
margin: 0 auto;
background-color: #eee;
border: 1px solid lightgrey;
width: 20vw;
height: 90vh;
font-family: sans-serif;

position: relative;
}

header {
background-color: lightgreen;
padding: 5px;
text-align: center;
text-transform: uppercase;
}

.bottom-navbar {
position: absolute;
bottom: 0;
width: 100%;
padding: 6px 0;
overflow: hidden;
background-color: lightgreen;
border-top: 1px solid var(--color-grey-dark-3);
z-index: 50;

display: flex;
justify-content: space-between;

> a {
display: block;
color: green;
text-align: center;
text-decoration: none;
font-size: 20px;
padding: 0 10px;

&.active {
color: black;
}
}
}

.menu-1.default,
.menu-1.active,
.menu-2.active,
.menu-3.active {
color: black;
}

.content-1,
.content-2,
.content-3 {
display: none;
}

.content-1.default,
.content-1.active,
.content-2.active,
.content-3.active {
display: block;
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
}

<div class="container">
<header>My header</header>
<div class="main-content">
<div class="content-1">House content</div>
<div class="content-2">Map content</div>
<div class="content-3">Explore content</div>
<div class="bottom-navbar">
<a href="#" class="menu-1"><i class="fa fa-home"></i></a>
<a href="#" class="menu-2"><i class="fa fa-map"></i></a>
<a href="#" class="menu-3"><i class="fa fa-search"></i></a>
</div>
</div>

如果您发现它更容易,这是我的 CodePen: https://codepen.io/fergos2/pen/vYYaRzN

最佳答案

设置要在页面上显示的每个菜单和内容项的全部工作是添加 active 类。所以在我看来,您需要做的就是将该类添加到 HTML 中。这样,当页面加载时它已经处于“事件”状态,并且当您单击其他内容时,您已经将其设置为删除类并将其他内容设置为事件状态。所以基本上,您的 HTML 看起来像这样:

  <header>My header</header>
<div class="main-content">
<div class="content-1 active">House content</div>
<div class="content-2">Map content</div>
<div class="content-3">Explore content</div>
<div class="bottom-navbar">
<a href="#" class="menu-1"><i class="fa fa-home active"></i></a>
<a href="#" class="menu-2"><i class="fa fa-map"></i></a>
<a href="#" class="menu-3"><i class="fa fa-search"></i></a>
</div>
</div>

我所做的只是给 .menu-1.content-1active

您还需要删除引用 .content-1.default.menu-1.default 的 css 位,并将您的 JS 设置为当您单击已有的菜单按钮时,添加 .active 。不用担心点击函数中的 else 语句

让我知道这是否适合您!

关于javascript - 使用 jQuery 设置默认内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58807759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com