回答編集履歴

4

修正

2022/04/10 11:27

投稿

kinchannel
kinchannel

スコア111

test CHANGED
@@ -28,7 +28,6 @@
28
28
  setTimeout(function(){
29
29
  $('.pos_now').each(function (i) {
30
30
  boxTop[i] = $(this).offset().top;
31
- console.log(boxTop[i]);
32
31
  });
33
32
  changeBox(4);
34
33
  }, 1000);

3

回答追加

2022/04/10 11:25

投稿

kinchannel
kinchannel

スコア111

test CHANGED
@@ -9,3 +9,29 @@
9
9
  その為、不具合が起きるわけです。
10
10
 
11
11
  ですので、これを解決するにはアコーディオンを開くボタンをクリックした際に、セクションの高さを再取得し直せば解決すると思います。
12
+
13
+ ### 追記
14
+
15
+ > いただいたアドバイスを参考に、また高さの取得方法を調べ、「もっと見る」ボタンをクリックした際に、セクションの高さを再取得するよう下記のように書き換えました。しかしうまく動作させることができませんでした。
16
+ > もしよろしければ、高さを再取得する記述方法を教えていただけると嬉しく思います。
17
+ > 知識不足で申し訳ありません。何卒よろしくお願いいたしますm(__)m
18
+
19
+ もっと良いやり方は全然あると思いますが、いまのコードを活かすなら以下のような形で要望の動きにはなると思います。
20
+
21
+ function changeBox(secNum) {
22
+
23
+ };
24
+ の下に、
25
+
26
+ ```jQuery
27
+ $(".more").on("click", function() {
28
+ setTimeout(function(){
29
+ $('.pos_now').each(function (i) {
30
+ boxTop[i] = $(this).offset().top;
31
+ console.log(boxTop[i]);
32
+ });
33
+ changeBox(4);
34
+ }, 1000);
35
+ });
36
+ ```
37
+ を入れる。

2

文章の修正

2022/04/10 09:27

投稿

kinchannel
kinchannel

スコア111

test CHANGED
@@ -3,7 +3,7 @@
3
3
  ```
4
4
  ここでページにアクセスした際に、各セクションまでの距離を取得しています。
5
5
 
6
- つまり、最初にアクセスした段階でセクション5の要素の高さはいくつで、その高さ分スクロールしたらセクション6の領域になると決まってしまいます。
6
+ つまり、最初にアクセスした段階でセクション5の要素まで距離、高さはいくつで、その高さ分スクロールしたらセクション6の領域になると決まってしまいます。
7
7
 
8
8
  しかし、セクション5はアコーディオン展開すると高さが変わってしまいます。
9
9
  その為、不具合が起きるわけです。

1

誤字の修正

2022/04/10 09:25

投稿

kinchannel
kinchannel

スコア111

test CHANGED
@@ -1,4 +1,4 @@
1
- ```javaScript
1
+ ```jQuery
2
2
  boxTop[i] = $(this).offset().top;
3
3
  ```
4
4
  ここでページにアクセスした際に、各セクションまでの距離を取得しています。