質問編集履歴

1

具体的な状況,HTML/CSSの追記

2022/05/17 08:34

投稿

josterjonathan
josterjonathan

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,9 @@
1
1
  マウスを追って目を動かす目玉を HTML/CSS で作成しています.
2
2
  目玉の中央にマウスを置くと目玉は真っ直ぐ前を向き,マウスを任意の方向に動かすと目玉はその方向に向く,というような完成形をイメージしています.
3
3
  その際,エレメントの座標の処理をどこかで間違えているようで,思った通りの挙動を示しません.
4
+ マウスを目で追う挙動ではなく,その右上を見ている状態です.
4
5
 
5
- ```
6
+ ```JavaScript
6
7
  const ball = document.querySelector('.ball'); // 目玉のエレメント
7
8
  document.onmousemove = () => {
8
9
  let left2center = document.body.clientWidth / 2; // ウィンドウ左端から中央までの長さ
@@ -20,3 +21,60 @@
20
21
 
21
22
  コード中 `offsetx` と `offsety` で中央からのずれを表しているつもりなのですが,どこか勘違いをしているようで...
22
23
  ご教示よろしくお願いします.
24
+
25
+ ---
26
+
27
+ ```HTML
28
+ <!DOCTYPE html>
29
+ <html lang="en" dir="ltr">
30
+ <head>
31
+ <link rel="stylesheet" href="style.css">
32
+ </head>
33
+ <body>
34
+ <div class="eyes">
35
+ <div class="eye">
36
+ <div class="ball"></div>
37
+ </div>
38
+ </div>
39
+ <script><!-- 同上 --></script>
40
+ </body>
41
+ </html>
42
+ ```
43
+
44
+ ```CSS
45
+ body{
46
+ margin: 0;
47
+ padding: 0;
48
+ }
49
+
50
+ .eyes{
51
+ position: absolute;
52
+ top: 50%;
53
+ transform: translateY(-50%);
54
+ width: 100%;
55
+ text-align: center;
56
+ }
57
+
58
+ .eye{
59
+ width: 10rem;
60
+ height: 10rem;
61
+ background: #ddd;
62
+ display: inline-block;
63
+ border-radius: 50%;
64
+ position: relative;
65
+ overflow: hidden;
66
+ margin: 2rem;
67
+ }
68
+
69
+ .ball{
70
+ width: 5rem;
71
+ height: 5rem;
72
+ background: #000;
73
+ position: absolute;
74
+ top: 50%;
75
+ left: 50%;
76
+ transform: translate(-50%,-50%);
77
+ border-radius: 50%;
78
+ border: 1rem solid #333;
79
+ }
80
+ ```