我如何解决我关于 javascript 中的翻转卡片的问题? [英] How can I resolve my problem about flip cards in javascript?

查看:10
本文介绍了我如何解决我关于 javascript 中的翻转卡片的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 Javascript 代码有问题.我想通过单击一个按钮(在我的例子中,该按钮称为结果")来翻转我的卡片.但我的问题是当我点击第一个按钮结果"时,所有卡片都会翻转.所以我尝试了两个foreach,但是没有用.

这是我的代码:

const card = document.querySelectorAll(".cards__single");const resultsButton = document.querySelectorAll ("results-button");const backButton = document.querySelectorAll ("back-button");card.forEach((card) => {resultsButton.addEventListener("点击", () => {card.classList.add('do-flip');});backButton.addEventListener("click", () => {card.classList.remove('do-flip');});});

p {行高:24px;margin-block-start: 1em;margin-block-end: 1em;}.tournaments-section {显示:弹性;flex-wrap: 包裹;对齐内容:居中;}.tournaments-section .tournament {弹性:33.333%;最大宽度:33.3333%;}.cards {显示:弹性;弹性方向:行;justify-content: 空间环绕;对齐内容:居中;位置:相对;视角:1000px;对齐项目:拉伸;}.tournaments-section .cards {填充:0 15px;}.cards__single {宽度:100%;边框半径:5px;box-shadow: 0 5px 18px rgb(0 0 0/60%);光标:指针;文本对齐:居中;-webkit-transition:转换 .6s;变换风格:preserve-3d;过渡:.5s;-webkit-transition: .5s;位置:相对;转换:转换 0.6s;-webkit-transition:转换 .6s;背景颜色:rgba(27,40,56,.95);显示:块;底边距:24px;边框:1px 实心 #41485a;}.cards__front, .cards__back {-webkit-backface-visibility:隐藏;背面可见性:隐藏;显示:弹性;弹性方向:列;}.cards__front {高度:100%;变换:旋转X(0度);-webkit-transform:rotateX(0deg);}.cards__front>.cards__front__header {位置:相对;高度:100%;最大高度:250px;最小高度:250px;溢出:隐藏;背景色:#373f50;}.cards__front>.cards__front__body {填充:8px 16px;位置:相对;边框顶部:1px 实心 #41485a;}.cards__front>.cards__front__footer {填充:8px 16px;显示:弹性;justify-content: 空间环绕;}.pfl 按钮 {背景:无;边框:0;box-sizing: 边框框;填充:1em;框阴影:插入 0 0 0 2px #ffffff;背景颜色:rgba(255, 255, 255, 0.2);颜色:#ffffff;字体大小:继承;字体粗细:700;位置:相对;垂直对齐:中间;文本转换:大写;}.pfl-button::before, .pfl-button::after {box-sizing:继承;内容: "";位置:绝对;宽度:100%;高度:100%;}.画 {过渡:彩色0.25s;}.draw::before, .draw::after {边框:2px 实心透明;宽度:0;高度:0;}.draw::before {顶部:0;左:0;}.meet::after {顶部:0;左:0;}.cards__single .pfl-button {填充:1em;背景颜色:rgba(255, 255, 255, 0.2);}.cards__back {变换:旋转Y(180度);-webkit-transform:rotateY(180deg);位置:绝对;文本对齐:居中;右:0;左:0;顶部:10px;}.cards__results {显示:弹性;justify-content: 空间环绕;底边距:15px;文本转换:大写;}.do-翻转{-o-变换:旋转Y(-180度);-webkit-transform:rotateY(-180deg);-ms-transform:rotateY(-180deg);变换:旋转Y(-180度);}

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWRgsw=1Osw1FWLgsv=1Osw1FWLgs1&s="PFL - 06/06/21 - 龙珠斗士">

<div class="cover"><h3 class="text" tabindex="0">标题 1</h3>

<div class="cards__front__body">你好世界 1

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button><a href="#" target="_blank" class="pfl-button draw meet">按钮 2</a><a href="#" target="_blank" class="pfl-button draw meet">按钮3</a>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWRgsw=1Osw1FWLgsv=1Osw1FWLgs1&s="PFL - 10/06/21 - 罪恶装备奋斗">

<div class="cover"><h3 class="text" tabindex="0">标题</h3>

<div class="cards__front__body">你好世界 2

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题2</h3>

<div class="cards__ranking"><h3>分类</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWGtM&v=1Osw1&v=1Osw1&v=1Osw1&8RgswZgtsw1&t&8;

<div class="cover"><h3 class="text" tabindex="0">标题 3</h3>

<div class="cards__front__body">你好世界 3

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button><a href="https://smash.gg/tournament/parisienne-fighting-ligue/event/pfl-10-06-21-dragon-ball-fighterz/overview" target="_blank" class="pfl-按钮绘制见面">括号</a>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题</h3>

<div class="cards__ranking"><h3>排名</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

提前感谢您的帮助!

解决方案

如果在开始时选择所有按钮,则将功能绑定到所有按钮.

相反,您需要在 foreach 中找到每个按钮作为 card 元素的子元素.此时,您将第一个侦听器分配给唯一的结果按钮(在该特定卡片元素内),并将另一个侦听器分配给唯一的后退按钮.

修复了下面的代码片段,我只编辑了 javascript 部分.

旁注:当您使用 querySelectorquerySelectorAll 并且想要通过其 id 访问某些内容时,例如 css 规则,您需要指定 # 首先.就像您为使用 . 作为前缀的 css 类所做的一样.

const card = document.querySelectorAll(".cards__single");card.forEach((card) => {//使用 querySelector 从卡片开始,而不是从文档开始const resultsButton = card.querySelector("#flip-card-btn-turn-to-back");resultsButton.addEventListener("点击", () => {card.classList.add('do-flip');});//后退按钮相同,card.querySelector 而不是 document.querySelectorconst backButton = card.querySelector("#flip-card-btn-turn-to-front");backButton.addEventListener("click", () => {card.classList.remove('do-flip');});});

p {行高:24px;margin-block-start: 1em;margin-block-end: 1em;}.tournaments-section {显示:弹性;flex-wrap: 包裹;对齐内容:居中;}.tournaments-section .tournament {弹性:33.333%;最大宽度:33.3333%;}.cards {显示:弹性;弹性方向:行;justify-content: 空间环绕;对齐内容:居中;位置:相对;视角:1000px;对齐项目:拉伸;}.tournaments-section .cards {填充:0 15px;}.cards__single {宽度:100%;边框半径:5px;box-shadow: 0 5px 18px rgb(0 0 0/60%);光标:指针;文本对齐:居中;-webkit-transition:转换 .6s;变换风格:preserve-3d;过渡:.5s;-webkit-transition: .5s;位置:相对;转换:转换 0.6s;-webkit-transition:转换 .6s;背景颜色:rgba(27,40,56,.95);显示:块;底边距:24px;边框:1px 实心 #41485a;}.cards__front, .cards__back {-webkit-backface-visibility:隐藏;背面可见性:隐藏;显示:弹性;弹性方向:列;}.cards__front {高度:100%;变换:旋转X(0度);-webkit-transform:rotateX(0deg);}.cards__front>.cards__front__header {位置:相对;高度:100%;最大高度:250px;最小高度:250px;溢出:隐藏;背景色:#373f50;}.cards__front>.cards__front__body {填充:8px 16px;位置:相对;边框顶部:1px 实心 #41485a;}.cards__front>.cards__front__footer {填充:8px 16px;显示:弹性;justify-content: 空间环绕;}.pfl 按钮 {背景:无;边框:0;box-sizing: 边框框;填充:1em;框阴影:插入 0 0 0 2px #ffffff;背景颜色:rgba(255, 255, 255, 0.2);颜色:#ffffff;字体大小:继承;字体粗细:700;位置:相对;垂直对齐:中间;文本转换:大写;}.pfl-button::before, .pfl-button::after {box-sizing:继承;内容: "";位置:绝对;宽度:100%;高度:100%;}.画 {过渡:彩色0.25s;}.draw::before, .draw::after {边框:2px 实心透明;宽度:0;高度:0;}.draw::before {顶部:0;左:0;}.meet::after {顶部:0;左:0;}.cards__single .pfl-button {填充:1em;背景颜色:rgba(255, 255, 255, 0.2);}.cards__back {变换:旋转Y(180度);-webkit-transform:rotateY(180deg);位置:绝对;文本对齐:居中;右:0;左:0;顶部:10px;}.cards__results {显示:弹性;justify-content: 空间环绕;底边距:15px;文本转换:大写;}.do-翻转{-o-变换:旋转Y(-180度);-webkit-transform:rotateY(-180deg);-ms-transform:rotateY(-180deg);变换:旋转Y(-180度);}

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWRgsw=BetaSw1FWLGtMx1Olw1V1FW1W10000000="PFL - 06/06/21 - 龙珠斗士">

<div class="cover"><h3 class="text" tabindex="0">标题 1</h3>

<div class="cards__front__body">你好世界 1

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button><a href="#" target="_blank" class="pfl-button draw meet">按钮 2</a><a href="#" target="_blank" class="pfl-button draw meet">按钮3</a>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWRgsw=BetaSw1fRgsw=BetaSw1f0LgsvR&vs="PFL - 10/06/21 - 罪恶装备奋斗">

<div class="cover"><h3 class="text" tabindex="0">标题</h3>

<div class="cards__front__body">你好世界 2

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题2</h3>

<div class="cards__ranking"><h3>分类</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

<div class="锦标赛"><div class="cards"><div class="cards__single"><div class="cards__front"><div class="cards__front__header"><div class="图像"><img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=1Osw1FWGtM&v=1Osw1&v=1Osw1&v=1Osw1&8RgswZgtsw1&t&8;

<div class="cover"><h3 class="text" tabindex="0">标题 3</h3>

<div class="cards__front__body">你好世界 3

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button><a href="https://smash.gg/tournament/parisienne-fighting-ligue/event/pfl-10-06-21-dragon-ball-fighterz/overview" target="_blank" class="pfl-按钮绘制见面">括号</a>

<div class="cards__back"><div class="cards__results"><div class="cards__top"><h3>标题</h3>

<div class="cards__ranking"><h3>排名</h3>

<div class="cards__front__footer"><button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">返回</button>

I have a problem with my Javascript code. I want to make a flip on my cards with a click on a button (in my case, the button called "Result"). But my issue is when I Click on the first button "Results", all cards make a flip. So I tried to do two foreach, but it doesn't work.

Here is my code:

const cards = document.querySelectorAll(".cards__single");
const resultsButton = document.querySelectorAll ("results-button");
const backButton = document.querySelectorAll ("back-button");

cards.forEach((card) => {
  resultsButton.addEventListener("click", () => {
    card.classList.add('do-flip');
  });

  backButton.addEventListener("click", () => {
    card.classList.remove('do-flip');
  });
});

p {
  line-height: 24px;
  margin-block-start: 1em;
  margin-block-end: 1em;
}

.tournaments-section {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.tournaments-section .tournament {
  flex: 33.333%;
  max-width: 33.3333%;
}

.cards {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-content: center;
  position: relative;
  perspective: 1000px;
  align-items: stretch;
}

.tournaments-section .cards {
  padding: 0 15px;
}

.cards__single {
  width: 100%;
  border-radius: 5px;
  box-shadow: 0 5px 18px rgb(0 0 0 / 60%);
  cursor: pointer;
  text-align: center;
  -webkit-transition: transform .6s;
  transform-style: preserve-3d;
  transition: .5s;
  -webkit-transition: .5s;
  position: relative;
  transition: transform .6s;
  -webkit-transition: transform .6s;
  background-color: rgba(27,40,56,.95);
  display: block;
  margin-bottom: 24px;
  border: 1px solid #41485a;
}

.cards__front, .cards__back {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
}

.cards__front {
  height: 100%;
  transform: rotateX(0deg);
  -webkit-transform: rotateX(0deg);
}

.cards__front>.cards__front__header {
  position: relative;
  height: 100%;
  max-height: 250px;
  min-height: 250px;
  overflow: hidden;
  background-color: #373f50;
}

.cards__front>.cards__front__body {
  padding: 8px 16px;
  position: relative;
  border-top: 1px solid #41485a;
}

.cards__front>.cards__front__footer {
  padding: 8px 16px;
  display: flex;
  justify-content: space-around;
}

.pfl-button {
  background: none;
  border: 0;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: inset 0 0 0 2px #ffffff;
  background-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-size: inherit;
  font-weight: 700;
  position: relative;
  vertical-align: middle;
  text-transform: uppercase;
}

.pfl-button::before, .pfl-button::after {
  box-sizing: inherit;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
}

.draw {
  transition: color 0.25s;
}

.draw::before, .draw::after {
  border: 2px solid transparent;
  width: 0;
  height: 0;
}

.draw::before {
  top: 0;
  left: 0;
}

.meet::after {
  top: 0;
  left: 0;
}

.cards__single .pfl-button {
  padding: 1em;
  background-color: rgba(255, 255, 255, 0.2);
}

.cards__back {
  transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  position: absolute;
  text-align: center;
  right: 0;
  left: 0;
  top: 10px;
}

.cards__results {
  display: flex;
  justify-content: space-around;
  margin-bottom: 15px;
  text-transform: uppercase;
}

.do-flip {
  -o-transform: rotateY(-180deg);
  -webkit-transform: rotateY(-180deg);
  -ms-transform: rotateY(-180deg);
  transform: rotateY(-180deg);
}

<div class="tournaments-section">

  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0" alt="PFL - 06/06/21 - Dragon Ball Fighterz">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title 1</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 1
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
            <a href="#" target="_blank" class="pfl-button draw meet">
              Button 2
            </a>
            <a href="#" target="_blank" class="pfl-button draw meet">Button 3</a>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>


  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0" alt="PFL - 10/06/21 - Guilty Gear Strive">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 2
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title 2</h3>

            </div>
            <div class="cards__ranking">
              <h3>Classement</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>


  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title 3</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 3
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
            <a href="https://smash.gg/tournament/parisienne-fighting-ligue/event/pfl-10-06-21-dragon-ball-fighterz/overview" target="_blank" class="pfl-button draw meet">
              Bracket
            </a>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title</h3>                                 </div>
            <div class="cards__ranking">
              <h3>Standings</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>





</div>

Thanks by advance for the help!

解决方案

If you select all the buttons at the beginning, you're binding the function to all of them.

Instead, you need to find each button as a child of the card element in your foreach. At that point, you assign to the only result button (inside that specific card element) the first listener and to the only back button the other listener.

Fixed snippet below, I only edited the javascript part.

Side note: When you use querySelector or querySelectorAll and you want to access something by its id, like a css rule, you need to specify # first. Like you're doing for css classes where you use . as prefix.

const cards = document.querySelectorAll(".cards__single");

cards.forEach((card) => {
  // Use querySelector starting from card, not from document
  const resultsButton = card.querySelector("#flip-card-btn-turn-to-back");
  resultsButton.addEventListener("click", () => {
    card.classList.add('do-flip');
  });
  
  // Same for the back button, card.querySelector instead of document.querySelector
  const backButton = card.querySelector("#flip-card-btn-turn-to-front");
  backButton.addEventListener("click", () => {
    card.classList.remove('do-flip');
  });
});

p {
  line-height: 24px;
  margin-block-start: 1em;
  margin-block-end: 1em;
}

.tournaments-section {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.tournaments-section .tournament {
  flex: 33.333%;
  max-width: 33.3333%;
}

.cards {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-content: center;
  position: relative;
  perspective: 1000px;
  align-items: stretch;
}

.tournaments-section .cards {
  padding: 0 15px;
}

.cards__single {
  width: 100%;
  border-radius: 5px;
  box-shadow: 0 5px 18px rgb(0 0 0 / 60%);
  cursor: pointer;
  text-align: center;
  -webkit-transition: transform .6s;
  transform-style: preserve-3d;
  transition: .5s;
  -webkit-transition: .5s;
  position: relative;
  transition: transform .6s;
  -webkit-transition: transform .6s;
  background-color: rgba(27,40,56,.95);
  display: block;
  margin-bottom: 24px;
  border: 1px solid #41485a;
}

.cards__front, .cards__back {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
}

.cards__front {
  height: 100%;
  transform: rotateX(0deg);
  -webkit-transform: rotateX(0deg);
}

.cards__front>.cards__front__header {
  position: relative;
  height: 100%;
  max-height: 250px;
  min-height: 250px;
  overflow: hidden;
  background-color: #373f50;
}

.cards__front>.cards__front__body {
  padding: 8px 16px;
  position: relative;
  border-top: 1px solid #41485a;
}

.cards__front>.cards__front__footer {
  padding: 8px 16px;
  display: flex;
  justify-content: space-around;
}

.pfl-button {
  background: none;
  border: 0;
  box-sizing: border-box;
  padding: 1em;
  box-shadow: inset 0 0 0 2px #ffffff;
  background-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-size: inherit;
  font-weight: 700;
  position: relative;
  vertical-align: middle;
  text-transform: uppercase;
}

.pfl-button::before, .pfl-button::after {
  box-sizing: inherit;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
}

.draw {
  transition: color 0.25s;
}

.draw::before, .draw::after {
  border: 2px solid transparent;
  width: 0;
  height: 0;
}

.draw::before {
  top: 0;
  left: 0;
}

.meet::after {
  top: 0;
  left: 0;
}

.cards__single .pfl-button {
  padding: 1em;
  background-color: rgba(255, 255, 255, 0.2);
}

.cards__back {
  transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  position: absolute;
  text-align: center;
  right: 0;
  left: 0;
  top: 10px;
}

.cards__results {
  display: flex;
  justify-content: space-around;
  margin-bottom: 15px;
  text-transform: uppercase;
}

.do-flip {
  -o-transform: rotateY(-180deg);
  -webkit-transform: rotateY(-180deg);
  -ms-transform: rotateY(-180deg);
  transform: rotateY(-180deg);
}

<div class="tournaments-section">

  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0" alt="PFL - 06/06/21 - Dragon Ball Fighterz">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title 1</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 1
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
            <a href="#" target="_blank" class="pfl-button draw meet">
              Button 2
            </a>
            <a href="#" target="_blank" class="pfl-button draw meet">Button 3</a>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>


  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0" alt="PFL - 10/06/21 - Guilty Gear Strive">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 2
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title 2</h3>

            </div>
            <div class="cards__ranking">
              <h3>Classement</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>


  <div class="tournament">
    <div class="cards">
      <div class="cards__single">
        <div class="cards__front">
          <div class="cards__front__header">
            <div class="image">
              <img class="cards__image" src="https://media-exp3.licdn.com/dms/image/C4D1BAQGJH3oVZgtvJA/company-background_10000/0/1569871136613?e=2159024400&v=beta&t=1O1eAL83swfIbvGoF1Rs5M1XES_1lgTN60tWBWgvAr0">
            </div>
            <div class="cover">
              <h3 class="text" tabindex="0">Title 3</h3>
            </div>
          </div>
          <div class="cards__front__body">
            Hello World 3
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-back" class="pfl-button draw meet results-button">Results</button>
            <a href="https://smash.gg/tournament/parisienne-fighting-ligue/event/pfl-10-06-21-dragon-ball-fighterz/overview" target="_blank" class="pfl-button draw meet">
              Bracket
            </a>
          </div>
        </div>
        <div class="cards__back">
          <div class="cards__results">
            <div class="cards__top">
              <h3>Title</h3>                                 </div>
            <div class="cards__ranking">
              <h3>Standings</h3>
            </div>
          </div>
          <div class="cards__front__footer">
            <button id="flip-card-btn-turn-to-front" class="pfl-button draw meet back-button">Go back</button>
          </div>
        </div>
      </div>
    </div>
  </div>





</div>

这篇关于我如何解决我关于 javascript 中的翻转卡片的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆