gpt4 book ai didi

javascript - 需要帮助创建分段控件

转载 作者:可可西里 更新时间:2023-11-01 14:45:28 25 4
gpt4 key购买 nike

我正在尝试创建一个分段控件来帮助组织我网站上的内容。到目前为止,我已经创建了分段控件并使用 HTML 和 CSS 以我想要的方式查看。现在,我想扩展此控件的功能,以便在选择每个段时显示/隐藏一系列 div 标签。然而,JavaScript 绝对不是我的强项,而且我还没有找到一个好的、响应式的解决方案来解决这个问题。

下面是我目前得到的代码。您还会注意到一系列 div 标记,其文本指示在选择控件中的每个段时应显示哪些标记。我很确定 JavaScript 将是解决这个问题的最简单方法,但正如我所说,我对这种语言还不够熟悉,无法在这里提出一个好的解决方案。如果您能提供有关扩展此分段控件的任何帮助,以便我可以使用它来根据所选的事件段显示和隐藏不同的 div 标签,我们将不胜感激。

这是我得到的 HTML:

<ul class="segmented-control">
<li class="segmented-control__item">
<input class="segmented-control__input" type="radio" value="1" name="option" id="option-1" checked>
<label class="segmented-control__label" for="option-1">Step 1</label>
</li>

<li class="segmented-control__item">
<input class="segmented-control__input" type="radio" value="2" name="option" id="option-2" >
<label class="segmented-control__label" for="option-2">Step 2</label>
</li>

<li class="segmented-control__item">
<input class="segmented-control__input" type="radio" value="3" name="option" id="option-3" >
<label class="segmented-control__label" for="option-3">Step 3</label>
</li>
</ul>

下面是在选择控件中的一个段时应显示的各种 div 标记。显然,它们现在都在分段控件下方显示,并且选择新段时,这些DIV标签中的任何一个都不会发生。这就是 JavaScript 需要做的事情:)

<div class="Step_1_Content" align="center">

<p>This is the content that should be displayed when the Step 1 segment has been selected</p>

</div>

<div class="Step_2_Content" align="center">

<p>This is the content that should be displayed when the Step 2 segment has been selected</p>

</div>

<div class="Step_3_Content" align="center">

<p>This is the content that should be displayed when the Step 3 segment has been selected</p>

</div>

这是我用于分段控件的 CSS:

<style>

.segmented-control {
display: table;
width: 100%;
margin: 2em 0;
padding: 0;
}

.segmented-control__item {
display: table-cell;
margin: 0;
padding: 0;
list-style-type: none;
}

.segmented-control__input {
position: absolute;
visibility: hidden;
}

.segmented-control__label {
display: block;
margin: 0 -1px -1px 0; /* -1px margin removes double-thickness borders between items */
padding: 1em .25em;
border: 1px solid #E62033;
color: #E62033;
font: 14px/1.5 sans-serif;
text-align: center;
cursor: pointer;
}


.segmented-control__label:hover {
background: #ffffff;
color: #E62033;
}

.segmented-control__input:checked + .segmented-control__label {
background: #E62033;
color: #ffffff;
}

</style>

再次感谢您的帮助!

最佳答案

您可以简单地将复选框的状态存储在变量中,并根据这些变量隐藏 div。

我在下面包含的第一个变量在页面加载时使用,其他变量在对象更改时使用。

在这里查看:https://jsfiddle.net/ezfy66f9/

var checked1 = $('#option-1').is(':checked');
var checked2 = $('#option-2').is(':checked');
var checked3 = $('#option-3').is(':checked');

if (checked1 == 1) {
$('.Step_1_Content').show();
$('.Step_2_Content').hide();
$('.Step_3_Content').hide();
} else if (checked2 == 1) {
$('.Step_2_Content').show();
$('.Step_1_Content').hide();
$('.Step_3_Content').hide();
} else if (checked3 == 1) {
$('.Step_3_Content').show();
$('.Step_1_Content').hide();
$('.Step_2_Content').hide();
}

$(".segmented-control").change(function () {
var checked1 = $('#option-1').is(':checked');
var checked2 = $('#option-2').is(':checked');
var checked3 = $('#option-3').is(':checked');

if (checked1 == 1) {
$('.Step_1_Content').show();
$('.Step_2_Content').hide();
$('.Step_3_Content').hide();
} else if (checked2 == 1) {
$('.Step_2_Content').show();
$('.Step_1_Content').hide();
$('.Step_3_Content').hide();
} else if (checked3 == 1) {
$('.Step_3_Content').show();
$('.Step_1_Content').hide();
$('.Step_2_Content').hide();
}
});

关于javascript - 需要帮助创建分段控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036919/

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