需要检查 div 可见性才能创建 "navigation menu"

Need to check div visibility to create "navigation menu"

所以,我有这个项目,其中显示带有字幕的图像,当您单击一个按钮时,下一个 "slide" 显示,并且正在显示的幻灯片被隐藏。到目前为止,一切都很好。我的问题是:我需要创建一个按钮来检查 div 目前可见的内容并隐藏它并显示 div 之前那个具有相同 class [=36= 的按钮].我还需要有关单击按钮以显示下一张幻灯片以显示具有相同 class 的部分的部分帮助,我使用它搜索父元素的方式。

所以,

<button class="back"></button>
<div class="slide  active">

    <div class="trapezoid"><img src="https://dl.dropboxusercontent.com/u/67567510/IMG_0296.JPG" alt="" /></div>

    <div class="hover_capt"></div>

    <div class="capt">
      <p>Tinha 24 Freiras</p>
      <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

    <div class="trapezoid"><img src="" alt="" /></div>

    <div class="hover_capt"></div>

    <div class="capt">
      <p>Tinha 24 Freiras</p>
      <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

    <div class="trapezoid"><img src="https://dl.dropboxusercontent.com/u/67567510/IMG_0296.JPG" alt="" /></div>

    <div class="hover_capt"></div>

    <div class="capt">
      <p>Tinha 24 Freiras</p>
      <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

    <div class="trapezoid"><img src="" alt="" /></div>

    <div class="hover_capt"></div>

    <div class="capt">
      <p>Tinha 24 Freiras</p>
      <p>Mandei-as Fazer um Doce</p>
  </div>

</div>

CSS:

.slide{
  width: 100%;
  height:500px;
  display:none;
}

.centerer{
  width: 100%;
}

.trapezoid { 
  width: 500px;
  height: 333px;  
  background-color: white; 
  margin: 0 auto;
  margin-top:50px;
}

.trapezoid img{
  max-width: 100%; 
  max-height: 100%; 
  width: auto;
  height: auto;
}

.hover_capt{
  width:50px;
  height:50px;
  background-color:red;
  margin: 0 auto;
  position:relative;
  top:-25px;
  border-radius: 50%;
}

.capt{
  text-align:center;
  z-index: -999;
  width:500px;
  background-color:beige;
  margin: 0 auto;
  position:relative;
  padding-top: 30px;
  padding-bottom: 20px;
  height: 60px;
  top:-50px;
  display:none;
}

/* Center the demo */
html, body { height: 100%; }
body {
  background-color:#330033;
}

.back{
  width:20px;
  height: 20px;
  background-color: pink;
  outline: none;
}

.active{
    display:inline;
}

还有 Jquery

$(document).ready(function(){

$( ".hover_capt" ).hover(function() {
    $( this ).parent().find('.capt').slideToggle();
  }
);

$(".hover_capt").click(function(){

  $(this).parent().removeClass('active');
  $(this).parent().next().addClass('active');

});

$(".back").click(function(){





});



});

最后 Pen

编辑

$(document).ready(function() {

  $(".trapezoid").hover(function() {
    $(this).siblings('.capt').slideToggle();
  });

  $(".hover_capt").click(function() {
    $(this).parent().removeClass('active');
    $(this).parent().next('.slide').addClass('active');
    if(current.next('.slide').is('.slide:first')) {
      $('.hover_capt').hide();
    }
    $('.back').show(); 
  });

  $(".back").click(function() {
    var current = $('.active');
    current.removeClass('active');
    current.prev('.slide').addClass('active');
    if(current.prev('.slide').is('.slide:first')) {
      $('.back').hide();
    }
  });

});

新查询

并更新了 Pen

所以你的 jQuery 只需要稍微清理一下就会好得多。

通过父项搜索没问题,但在 .next() 调用中,您可以指定选择器。

我还添加了后退按钮的功能,并将滑动切换的调用更改为对兄弟姐妹进行调用,而不是对父调用进行调用。它大大减少了所需的代码量。

$(document).ready(function() {

  $(".hover_capt").hover(function() {
    $(this).siblings('.capt').slideToggle();
  });

  $(".hover_capt").click(function() {
    $(this).parent().removeClass('active');
    $(this).parent().next('.slide').addClass('active');
    if($(this).parent().next('.slide').is('.slide:last')) {
      $('.hover_capt').hide();
    }
    $('.back').show(); 
  });

  $(".back").click(function() {
    var current = $('.active');
    current.removeClass('active');
    current.prev('.slide').addClass('active');
    if(current.prev('.slide').is('.slide:first')) {
      $('.back').hide();
    }
  });

});
.slide {
  width: 100%;
  height: 500px;
  display: none;
}
.centerer {
  width: 100%;
}
.trapezoid {
  width: 500px;
  height: 333px;
  background-color: white;
  margin: 0 auto;
  margin-top: 50px;
}
.trapezoid img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
}
.hover_capt {
  width: 50px;
  height: 50px;
  background-color: red;
  margin: 0 auto;
  position: relative;
  top: -25px;
  border-radius: 50%;
}
.capt {
  text-align: center;
  z-index: -999;
  width: 500px;
  background-color: beige;
  margin: 0 auto;
  position: relative;
  padding-top: 30px;
  padding-bottom: 20px;
  height: 60px;
  top: -50px;
  display: none;
}
/* Center the demo */

html,
body {
  height: 100%;
}
body {
  background-color: #330033;
}
.back {
  width: 20px;
  height: 20px;
  background-color: pink;
  outline: none;
  display: none;
}
.active {
  display: inline;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="back"></button>
<div class="slide  active">

  <div class="trapezoid">
    <img src="https://dl.dropboxusercontent.com/u/67567510/IMG_0296.JPG" alt="" />
  </div>

  <div class="hover_capt"></div>

  <div class="capt">
    <p>Tinha 24 Freiras</p>
    <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

  <div class="trapezoid">
    <img src="" alt="" />
  </div>

  <div class="hover_capt"></div>

  <div class="capt">
    <p>Tinha 24 Freiras</p>
    <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

  <div class="trapezoid">
    <img src="https://dl.dropboxusercontent.com/u/67567510/IMG_0296.JPG" alt="" />
  </div>

  <div class="hover_capt"></div>

  <div class="capt">
    <p>Tinha 24 Freiras</p>
    <p>Mandei-as Fazer um Doce</p>
  </div>

</div>
<div class="slide ">

  <div class="trapezoid">
    <img src="" alt="" />
  </div>

  <div class="hover_capt"></div>

  <div class="capt">
    <p>Tinha 24 Freiras</p>
    <p>Mandei-as Fazer um Doce</p>
  </div>

</div>

希望这能按预期工作