首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >幻灯片切换隐藏上一个div

幻灯片切换隐藏上一个div
EN

Stack Overflow用户
提问于 2018-05-18 22:29:51
回答 2查看 137关注 0票数 1

提前感谢您的宝贵时间!这是我的设置和Id,就像之前单击的div一样,在显示新的div之前使用滑动切换来隐藏。

CSS:

代码语言:javascript
复制
.waxing {
    display: none;
}

.facials {
    display: none;
}

.bodywraps {
   display: none;
}

HTML

代码语言:javascript
复制
<div class="heroIcons">
    <div class="button waxingButton">
        <p>view prices</p>
    </div>

    <div class="button facialsButton">
        <p>view prices</p>
    </div>

    <div class="button bodywrapsButton">
        <p>view prices</p>
    </div> 
</div>

<div class="section services">
    <div class="wrapper">
        <div class="waxing">
            <p>content that I want to slidetoggle</p>
        </div>
    </div>   
</div>

<div class="section services">
    <div class="wrapper">
        <div class="facials">
            <p>content that I want to slidetoggle</p>
        </div>
    </div>   
</div>

<div class="section services">
    <div class="wrapper">
        <div class="bodywraps">
            <p>content that I want to slidetoggle</p>
        </div>
    </div>   
</div>

JQuery

代码语言:javascript
复制
$(".heroIcons .waxingButton").click(function(){
    $(".waxing").slideToggle(1500);
});

$(".heroIcons .facialsButton").click(function(){
    $(".facials").slideToggle(1500);
});

$(".heroIcons .bodywrapsButton").click(function(){
    $(".bodywraps").slideToggle(1500);
});

这一切都很好,但我希望当我单击打开一个不同的div时,它可以关闭之前打开的div

EN

回答 2

Stack Overflow用户

发布于 2018-05-18 22:51:15

你应该尽量避免代码重复(DRY原则)。

下面是一些经过重构的标记,但您可以添加任意数量的按钮和部分,而无需添加更多JS代码:

代码语言:javascript
复制
$(".button").click(function() {
  var className = $(this).data('button')
  
  $('.content').hide()
  $('.' + className).slideToggle(1500);
});
代码语言:javascript
复制
.button {
  cursor: pointer
}

.content {
  display: none;
  background: honeydew;
  border: 1px solid green;
  padding: 1rem;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="button" data-button="waxing">
  <p>view prices</p>
</div>

<div class="button" data-button="facials">
  <p>view prices</p>
</div>

<div class="button" data-button="bodywraps">
  <p>view prices</p>
</div>

<div class="content waxing">waxing PRICES</div>
<div class="content facials">facials PRICES</div>
<div class="content bodywraps">bodywraps PRICES</div>

票数 1
EN

Stack Overflow用户

发布于 2018-05-18 22:48:44

你可以这样做-在打开你点击的下拉列表之前,它应该隐藏打开的下拉列表(你会想要调整.hide上的速度)

代码语言:javascript
复制
$(".heroIcons .waxingButton").click(function() {
$(".bodywraps").hide(1500);
$(".facials").hide(1500);
$(".waxing").slideToggle(1500);
});

$(".heroIcons .facialsButton").click(function() {
$(".bodywraps").hide(1500);
$(".waxing").hide(1500);
$(".facials").slideToggle(1500);
});

$(".heroIcons .bodywrapsButton").click(function() {
$(".waxing").hide(1500);
$(".facials").hide(1500);
$(".bodywraps").slideToggle(1500);
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50413617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档