CSS实现点击翻转效果

1、先看效果

就是点击之后反转成蓝色的过程,不知道用什么软件能录制个gif(如果你有什么好的录制gif软件可以告诉我,哈哈),就将就着看吧。

上代码,html版本

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Flip Card Example</title>
<style>
  .flip-card {
    background-color: transparent;
    width: 200px;
    height: 300px;
    perspective: 1000px; /* Remove if not needed, but adds a 3D effect */
  }

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

  .flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden; /* Safari */
    backface-visibility: hidden;
    border-radius: 10px;
  }

  .flip-card-front {
    background-color: #bbb;
    color: black;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .flip-card-back {
    background-color: #2980b9;
    color: white;
    transform: rotateY(180deg);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* 翻转时的状态 */
  .flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
  }
</style>
</head>
<body>

<div class="flip-card" onclick="this.classList.toggle('is-flipped')">
  <div class="flip-card-inner">
    <div class="flip-card-front">
      <p>Front Content</p>
    </div>
    <div class="flip-card-back">
      <p>Back Content</p>
    </div>
  </div>
</div>

</body>
</html>

vue版本,vue2的哦

<template>
  <div>
    <button @click="flipCard">Flip Card</button>
    <div class="flip-card" :class="{ 'flipped': isFlipped }">
      <div class="flip-card-inner">
        <div class="flip-card-front">
          <p>Front Content</p>
        </div>
        <div class="flip-card-back">
          <p>Back Content</p>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isFlipped: false,
    };
  },
  methods: {
    flipCard() {
      this.isFlipped = !this.isFlipped;
    },
  },
};
</script>

<style scoped>
.flip-card {
  background-color: transparent;
  width: 200px;
  height: 300px;
  perspective: 1000px; /* 3D效果 */
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  border-radius: 10px;
}

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

.flip-card-front {
  background-color: #bbb;
  color: black;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flip-card-back {
  background-color: #2980b9;
  color: white;
  transform: rotateY(180deg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.flipped .flip-card-inner {
  transform: rotateY(180deg);
}
</style>
 

 

 

 

 

 

posted @ 2024-07-19 16:11  幽冥狂_七  阅读(84)  评论(0编辑  收藏  举报