亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 卡翻轉:卡背面數據在卡外

JavaScript 卡翻轉:卡背面數據在卡外

三國紛爭 2023-07-14 10:01:22
我試圖在正面和背面之間翻轉卡片,每個卡片上顯示不同的數據。然而,我的代碼現在并排顯示正面和背面,當我單擊卡片時,它會將其翻轉,但所有內容都顛倒了。所以我需要將卡片背面的數據移到卡片中,并在翻轉后顯示它。我的 HTML 只有卡片的容器。<h1>POKEDEX</h1><div id="poke_container" class="poke_container"></div>這是我的 JavaScript 函數,它從 API 獲取數據,以及卡片正面和背面的 InnerHTML。function createPokemonCard(pokemon) {    const pokemonEl = document.createElement('div');    const pokemonElBack = document.createElement('div');    pokemonEl.classList.add('pokemon');    const poke_types = pokemon.types.map(el => el.type.name);    const type = pokemon.types[0].type.name;    //const stats = pokemon.stats[0].stat.name;    const ability = pokemon.abilities[0].ability.name;    const name = pokemon.name[0].toUpperCase() + pokemon.name.slice(1);    const card_color = colors[type];    pokemonEl.style.backgroundColor = card_color;    //Card Front data and HTML    const pokeInnerHTML = `    <div class="front">    <div class="img-container">    <img src="https://pokeres.bastionbot.org/images/pokemon/${pokemon.id}.png" />    </div>    <div class ="info">      <span class="number">#${pokemon.id.toString().padStart(3, '0')}</span>      <a href="https://bulbapedia.bulbagarden.net/wiki/${name}_(Pok%C3%A9mon)" class="name"><h3>${name}</h3></a>      <small class="type"><span>${type.charAt(0).toUpperCase() + type.slice(1)}</span></small>    </div>    </div>    `;    pokemonEl.innerHTML = pokeInnerHTML;    poke_container.appendChild(pokemonEl);// Back of the card data  const pokeCardBack = `    <div class="flipped">      <div class="img-container">      <img src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${pokemon.id}.png" />      </div>      <div class ="info">        <span class="number">#${pokemon.id.toString().padStart(3, '0')}</span>        <h3 class="name">${name}</h3>        <small class="type"><span>${ability}</span></small>      </div>    </div>    `;這是我的CSS。大多數只是針對卡片設計,但翻轉應該是針對卡片背面?,F在它只是翻轉卡片,但只顯示正面的鏡像版本,而不是背面的數據。
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

我認為你的問題是backface-visibility將其設置為隱藏應該可以解決問題。

你想要一張翻轉卡,對嗎?然后創建 3D 透視并使背面不可見。

演示(點擊翻轉按鈕翻轉卡片):

$("#flip").click(function(){$(".pokemon").toggleClass("flipped")});

.card{

? width: 400px;

? height: 170px;

? perspective: 600px;

}


.pokemon {

? transform-origin: center right;

? width: 100%;

? height: 100%;

? position: relative;

? transition: transform 1s;

? transform-style: preserve-3d;

}


.pokemon .front{

? position: absolute;

? height: 100%;

? width: 100%;

? backface-visibility: hidden;

? transform: rotateY(0deg);

}


.pokemon .flipped{

? position: absolute;

? height: 100%;

? width: 100%;

? backface-visibility: hidden;

? transform: rotateY(180deg);

}


.pokemon .img-container img {

? margin-top: 20px;

? max-width: 90%;

}


.pokemon .info {

? margin-top: 20px;

}


.pokemon .number {

? background-color: rgba(0, 0, 0, 0.1);

? border-radius: 10px;

? font-size: 0.8em;

? padding: 5px 10px;

? font-family: 'Josefin Sans', sans-serif;

}


.pokemon .name {

? margin: 15px 0 7px;

? letter-spacing: 1px;

? font-family: 'Cabin', sans-serif;

}



.pokemon .type {

? background-color: rgba(0, 0, 0, 0.1);

? border-radius: 10px;

? font-size: 0.8em;

? padding: 5px 10px;

? font-family: 'Josefin Sans', sans-serif;

}


.pokemon.flipped {

? transform: translateX(-100%) rotateY(-180deg);

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="card">

? <div class="pokemon">

? ? <div class="front">

? ? ? <div class="img-container">

? ? ? ? <img src="https://pokeres.bastionbot.org/images/pokemon/${pokemon.id}.png" />

? ? ? </div>

? ? ? <div class="info">

? ? ? ? <span class="number">#${pokemon.id.toString().padStart(3, '0')}</span>

? ? ? ? <a class="name">

? ? ? ? ? <h3>${name}</h3>

? ? ? ? </a>

? ? ? ? <small class="type"><span>${type.charAt(0).toUpperCase() + type.slice(1)}</span></small>

? ? ? </div>

? ? </div>

? ? <div class="flipped">

? ? ? <div class="img-container">

? ? ? ? <img src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${pokemon.id}.png" />

? ? ? </div>

? ? ? <div class="info">

? ? ? ? <span class="number">#${pokemon.id.toString().padStart(3, '0')}</span>

? ? ? ? <h3 class="name">${name}</h3>

? ? ? ? <small class="type"><span>${ability}</span></small>

? ? ? </div>

? ? </div>


? </div>


</div>


<button id="flip">

flip!

</button>


查看完整回答
反對 回復 2023-07-14
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號