今はフラッシュカードをやっていますが
html
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8 9 <style> 10 body { 11 margin: 0; 12 background: #e0e0e0; 13 text-align: center; 14 font-family: Verdana, sans-serif; 15 color: #fff; 16 } 17 18 #btn { 19 width: 200px; 20 margin: 0 auto; 21 padding: 7px; 22 border-radius: 5px; 23 background: #00aaff; 24 box-shadow: 0 4px 0 #0088cc; 25 cursor: pointer; 26 } 27 28 #btn:hover { 29 opacity: 0.8; 30 } 31 32 #card { 33 margin: 60px auto 20px; 34 width: 400px; 35 height: 100px; 36 cursor: pointer; 37 font-size: 38px; 38 line-height: 100px; 39 perspective: 100px; 40 transform-style: preserve-3d; 41 transition: transform 0.8s; 42 } 43 44 #card-front, 45 #card-back { 46 width: 100%; 47 height: 100%; 48 border-radius: 5px; 49 position: absolute; 50 backface-visibility: hidden; 51 } 52 53 #card-front { 54 background: #fff; 55 color: #333; 56 } 57 58 #card-back { 59 background: #00aaff; 60 transform: rotateY(180deg); 61 } 62 63 .open { 64 transform: rotateY(180deg); 65 } 66 </style> 67</head> 68 69<body> 70 <div id="card"> 71 <div id="card-front"></div> 72 <div id="card-back"></div> 73 </div> 74 <div id="btn">NEXT</div> 75 76 77 <script> 78 (function () { 79 'use strict'; 80 81 let words = [ 82 { 'en': 'read', 'ja': '読む' }, 83 { 'en': 'write', 'ja': '書く' }, 84 { 'en': 'eat', 'ja': '食べる' }, 85 { 'en': 'run', 'ja': '走る' }, 86 { 'en': 'walk', 'ja': '歩く' } 87 ]; 88 89 let card = document.querySelector('#card'); 90 let cardFront = document.querySelector('#card-front'); 91 let cardBack = document.querySelector('#card-back'); 92 let btn = document.querySelector('#btn'); 93 94 card.addEventListener('click', function () { 95 flip(); 96 }); 97 btn.addEventListener('click', function() { 98 next(); 99 }) 100 101 function next() { 102 let num = Math.floor(Math.random() *words.length); 103 cardFront.innerHTML = words[num]['en']; 104 cardBack.innerHTML = words[num]['ja']; 105 } 106 107 next(); 108 109 function flip() { 110 card.className = card.className === '' ? 'open' : ''; 111 } 112 })(); 113 </script> 114</body> 115 116</html>
このまま実行したらカードの表面が表示されて、70行目にclass="open"を追加したらカードの裏面が表示されますが、110行が機能しているということで合ってます?
分かりづらいので70行目は常に<div id="card" class="open">としたいです。
デフォルトで表面が表示されたら良いと思うのですが、どうしたら良いですか?
70行目を<div id="card" class="open">にして、
110行目をcard.className = card.className === 'open' ? 'open' : '';にしても裏面が表示されます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/10/30 05:50
2024/10/30 08:12 編集