【问题标题】:Bootstrap 4 | Flip card on click()引导程序 4 |点击()翻转卡片
【发布时间】:2019-08-15 23:45:09
【问题描述】:

CSS :active 在 mouseDown 上翻转我的卡片。我需要的是用 JQuery click() 替换 mouseDown 事件,这样我的卡片就会保持翻转,直到我再次单击它。

我用 JQuery 尝试了几个选项,但没有任何效果。

这是工作 CSS(鼠标按下)

.flip-card {
  background-color: transparent; 
  perspective: 1000px;  
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  box-shadow: 0 8px 10px 0 rgba(90,90,90,0.2)
}


.flip-card:active .flip-card-inner {   
  transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}



.flip-card-back {

  transform: rotateY(180deg);
}

这是 HTML

<div class="card mb-3  " style="border:0;"  >
<div class="flip-card mb-3 ">

  <div class="flip-card-inner"  >
  <div class="flip-card-front"> 
  <!--Card image-->
  <div class="view overlay">
    <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%287%29.jpg" class="img-fluid" alt="">
    <a href="#">
      <div class="mask rgba-white-slight"></div>
    </a>
  </div>

  <!--Card content-->
  <div  class="card-body   " style="border:0; " >       
    <!--Title-->
    <h4 class="card-title">Card title 1</h4>
    <!--Text-->
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's
      content.</p>
    <button class="btn btn-primary" id="btnflip1"  >Front</button>
  </div>


  </div>


  <div class="flip-card-back" >
  <!--Card image-->
  <div class="view overlay">
    <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%287%29.jpg" class="img-fluid" alt="">
    <a href="#">
      <div class="mask rgba-white-slight"></div>
    </a>
  </div>

  <!--Card content-->
  <div  class="card-body   " style="border:0; " >   
    <!--Title-->
    <h4 class="card-title">Card title 2</h4>
    <!--Text-->
    <p class="card-text">This is the back</p>
    <button class="btn btn-primary" id="btnflip2" >Back</button>  
  </div>

  </div>

  </div>  
  </div>  
</div>   

我需要卡片在 click() 事件上用 JQuery 翻转。我不能使用 MD,而且这个库对我不起作用:https://nnattawat.github.io/flip/

非常感谢

【问题讨论】:

    标签: jquery twitter-bootstrap


    【解决方案1】:

    我刚刚使用了一个名为“.flipped”的类,您之前在其中拥有 :active 选择器。

    然后我使用 jquery 在点击卡片时切换翻转的类。

    $('.flip-card').on('click', 
      function(){
        $(this).toggleClass('flipped')
      }
    )
    .flip-card {
      background-color: transparent; 
      perspective: 1000px;  
    }
    
    .flip-card-inner {
      position: relative;
      width: 100%;
      height: 100%;
      transition: transform 0.6s;
      transform-style: preserve-3d;
      box-shadow: 0 8px 10px 0 rgba(90,90,90,0.2)
    }
    
    
    .flip-card.flipped .flip-card-inner {   
      transform: rotateY(180deg);
    }
    
    .flip-card-front, .flip-card-back {
      position: absolute;
      width: 100%;
      height: 100%;
      backface-visibility: hidden;
    }
    
    
    
    .flip-card-back {
    
      transform: rotateY(180deg);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="card mb-3" style="border:0;"  >
    <div class="flip-card mb-3 ">
    
      <div class="flip-card-inner"  >
      <div class="flip-card-front"> 
      <!--Card image-->
      <div class="view overlay">
        <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%287%29.jpg" class="img-fluid" alt="">
        <a href="#">
          <div class="mask rgba-white-slight"></div>
        </a>
      </div>
    
      <!--Card content-->
      <div  class="card-body" style="border:0;" >       
        <!--Title-->
        <h4 class="card-title">Card title 1</h4>
        <!--Text-->
        <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's
          content.</p>
        <button class="btn btn-primary" id="btnflip1"  >Front</button>
      </div>
    
    
      </div>
    
    
      <div class="flip-card-back" >
      <!--Card image-->
      <div class="view overlay">
        <img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%287%29.jpg" class="img-fluid" alt="">
        <a href="#">
          <div class="mask rgba-white-slight"></div>
        </a>
      </div>
    
      <!--Card content-->
      <div  class="card-body" style="border:0;" >   
        <!--Title-->
        <h4 class="card-title">Card title 2</h4>
        <!--Text-->
        <p class="card-text">This is the back</p>
        <button class="btn btn-primary" id="btnflip2" >Back</button>  
      </div>
    
      </div>
    
      </div>  
      </div>  
    </div>

    【讨论】:

    • 或者,您可以在前/后按钮上添加“翻转卡”类,并将 jquery 选择器更改为针对该类而不是针对整个卡片。
    猜你喜欢
    • 2020-07-28
    • 2020-08-15
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多