我有两个并排的按钮,当点击时标有“有效”类&还会在下面的div上触发CSS幻灯片效果。
首次点击该页面时,按钮A已被归类为“有效”&幻灯片1已打开。当您单击按钮B时,它已成功归类为“活动”&滑块成功滑动到幻灯片2(从右到左)。
我无法理解的是,如果再次单击按钮A,现在如何反转滑块。我在实时网站上查看了完全相同的例子,但它们似乎比它必须要复杂得多。
HTML:
<div id="get-in-touch" class="row show-for-medium-up">
<ul class="tab-navigation small-12 columns">
<li id="say-hello-form">
<div class="small-12 medium-6 columns">
<h4>Want to say hello?</h4>
<button id="send-message" class="active" rel="tab1">Send us a Message</button>
</div>
</li>
<h4 class="or">OR</h4>
<li id="start-project-form">
<div class="small-12 medium-6 columns">
<h4>Want to work with us?</h4>
<button id="kick-start" rel="tab2">Kick Start your Project</button>
</div>
</li>
</div>
</div>
<section id="say-hello-wrapper-outer" >
<section id="say-hello-wrapper-inner" class="row">
<section id="say-hello" class="active hide-for-small tab-container">
<div id="tab1" class="row tab_content">
<div class="medium-6 columns">
<div id="map">
<p>We work remotely with clients all over Australia!</p>
<img src="<?php echo get_template_directory_uri(); ?>/img/map.jpg">
</div>
</div>
<div id="form" class="medium-6 columns">
<?php gravity_form(2, false, false, false, '', true); ?>
</div>
</div>
<div id="tab2" class="row tab_content">
<div id="form" class="medium-12 columns">
<?php gravity_form(3, false, false, false, '', true); ?>
</div>
</div>
</section>
</section>
</section>
CSS:
#say-hello-wrapper-outer {
background: #f5f6fa;
width: 100%;
}
#say-hello-wrapper-inner {
overflow: hidden;
background: #f5f6fa;
}
#say-hello {
width: 2280px;
height: 2000px;
overflow: hidden;
margin-left: -1140px;
// margin-left: -1100px;
-webkit-transition: margin-left 0.6s;
-moz-transition: margin-left 0.6s;
transition: margin-left 0.6s;
#tab1, #tab2 {
width: 1170px;
float: left;
}
}
#say-hello > #form {
border-bottom: 1px solid #ebebeb;
}
#say-hello.active {
margin-left: 0px;
}
JS:
jQuery("ul.tab-navigation li button").click(function() {
jQuery("ul.tab-navigation li button").removeClass("active");
jQuery(this).addClass("active");
jQuery('#say-hello').removeClass("active", function() {
jQuery('#say-hello').addClass("active");
});
});
答案 0 :(得分:0)
问题是你试图在每个按钮上运行相同的东西,你可以使用if语句区分它们:
jQuery("ul.tab-navigation li button").click(function() {
jQuery("ul.tab-navigation li button").removeClass("active");
jQuery(this).addClass("active");
if (this.id == "kick-start"))
jQuery('#say-hello').removeClass("active");
else
jQuery('#say-hello').addClass("active");
});
仅当您按下kickstart按钮时,才会将“active”类应用于滑块。
如果我可以给你一些与你的问题完全不相关的建议,就是以一种不那么令人困惑的方式开始命名,例如将“活动”类应用于滑块和按钮并在同一个游戏中使用范围函数,当你尝试调试它时很快就会感到痛苦。
此外,尝试编写代码,因为它将为您自己编写一个独立的包,以便尽可能地重用它而无需重新读取它,这意味着以下内容:
您可能会同意我的看法<button class="js-slider" data-position="left">
每次使用和重新编码每个按钮元素的效率更高。
这对某些人来说可能听起来很明显,但这使您能够开始编写更清晰,更轻量级的代码,这些代码非常容易为您调试(以及其他人可以帮助您)。