###やりたいこと
箱をクリックすると移動するものを作ろうとしています。
CSS変数で箱の大きさを指定して、その大きさの2倍だけ動かしたいのですが、うまく動きません。ソースコードは以下の通りです。
###ソースコード
html
1<!DOCTYPE html> 2 3<html lang='ja'> 4 <head> 5 <meta charset='utf-8'> 6 <style> 7 /* 箱の大きさ */ 8 :root { 9 --box-size: 150px; 10 } 11 /* 枠 */ 12 .container { 13 border: 3px solid #333; 14 background: #ccc; 15 width: calc(var(--box-size)*3); 16 height: var(--box-size); 17 margin: 30px auto; 18 } 19 /* 箱 */ 20 #box { 21 background: #fff; 22 width: var(--box-size); 23 height: var(--box-size); 24 transition: 0.5s; 25 } 26 /* 箱をクリックしたとき動かす量 */ 27 #box.move { 28 /* transform: translate(200px,0); */ 29 /* transform: translate(var(--box-size),0); */ 30 transform: translate(calc(var(--box-size)*2),0); 31 } 32 </style> 33 </head> 34 35 <body> 36 <!-- 枠 --> 37 <div class='container'> 38 <!-- 箱 --> 39 <div id='box'></div> 40 </div> 41 42 <script> 43 const box = document.getElementById('box'); 44 45 // 箱を押したら動くようにクラスを追加。 46 box.addEventListener('click', () => { 47 if (box.classList.contains('move')) { 48 box.classList.remove('move'); 49 } else { 50 box.classList.add('move'); 51 } 52 }); 53 </script> 54 </body> 55</html>
###試したこと
コメントアウトしているようにtransform: translate(var(--box-size),0);
とすると、箱の大きさ分だけ移動しました。しかし、calc()で箱の大きさの2倍だけ動かそうとすると、箱は動きませんでした。
###環境
Microsoft Edgeを使用しています。VersionはEdgeHTML 16.16299です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/16 23:10