回答編集履歴

2

コメントを受けて追記

2020/08/08 03:53

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36932

test CHANGED
@@ -87,3 +87,93 @@
87
87
  });
88
88
 
89
89
  ```
90
+
91
+
92
+
93
+
94
+
95
+ # コメントを受けて追記
96
+
97
+
98
+
99
+ [サンプル](https://jsfiddle.net/Lhankor_Mhy/8d5nhLau/)
100
+
101
+
102
+
103
+ ```css
104
+
105
+ section {
106
+
107
+ width: 100%;
108
+
109
+ height: 100vh;
110
+
111
+ box-sizing: border-box;
112
+
113
+ opacity: 0;
114
+
115
+ transition: 1s;
116
+
117
+ position: fixed;
118
+
119
+ }
120
+
121
+
122
+
123
+ section.active {
124
+
125
+ opacity: 1;
126
+
127
+ z-index: 2;
128
+
129
+ }
130
+
131
+ ```
132
+
133
+
134
+
135
+ ```js
136
+
137
+ let f = true;
138
+
139
+ document.addEventListener('wheel', e => {
140
+
141
+ if (f) {
142
+
143
+ const target = document.querySelector('section.active');
144
+
145
+ const shown = (e.deltaY > 0) ?
146
+
147
+ target.nextElementSibling :
148
+
149
+ target.previousElementSibling;
150
+
151
+ shown?.classList.add('active');
152
+
153
+ target.classList.remove('active');
154
+
155
+ f = false;
156
+
157
+ }
158
+
159
+ });
160
+
161
+ document.querySelectorAll('section').forEach(el => el.addEventListener('transitionend', e => {
162
+
163
+ f = true;
164
+
165
+ }));
166
+
167
+ ```
168
+
169
+
170
+
171
+ 境界の処理とかはしてないので、上手くやってください。
172
+
173
+
174
+
175
+ ---
176
+
177
+
178
+
179
+ ただ、これ、自前で実装するよりも、パララックスやスクロールのプラグインを使った方が上手くいくかもしれませんよ。

1

余分なコードを削除

2020/08/08 03:53

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36932

test CHANGED
@@ -44,13 +44,7 @@
44
44
 
45
45
  height: 100vh;
46
46
 
47
- background-color: silver;
48
-
49
- border: solid snow;
50
-
51
47
  scroll-snap-align: start;
52
-
53
- box-sizing: border-box;
54
48
 
55
49
  opacity: 0;
56
50