質問編集履歴

2

実装コードを追記

2017/01/24 03:16

投稿

kukuvon
kukuvon

スコア13

test CHANGED
File without changes
test CHANGED
@@ -10,12 +10,88 @@
10
10
 
11
11
  ・「戻る」「進む」共に、連続して次々動かす(現状だと、1度クリックした後多少スクロールしないと動かない)
12
12
 
13
- ・最初のセクションに差し掛かったら「戻る」を、最後のセクションでは「進む」を、それぞれ非表示に
14
-
15
13
 
16
14
 
17
15
  これらの要素を実装したいと考えております。
18
16
 
19
17
 
20
18
 
19
+ ```jquery
20
+
21
+ $(function(){
22
+
23
+ var idx = -1;
24
+
21
- ご助力いただければ幸いです。
25
+ var idxB = +1;
26
+
27
+ var sectionPos = 0;
28
+
29
+ var scrollTop = 0;
30
+
31
+ var targetTop = 0;
32
+
33
+ $(window).on("load scroll", function(e){
34
+
35
+ $(".section").each(function(index, ele){
36
+
37
+ sectionPos = $(ele).offset().top;
38
+
39
+ scrollTop = $(window).scrollTop();
40
+
41
+ if(sectionPos > scrollTop){
42
+
43
+ idx = index-1;
44
+
45
+ idxB = index+1;
46
+
47
+ return false;
48
+
49
+ }
50
+
51
+ });
52
+
53
+ });
54
+
55
+ $(".prev").on("click", function(e){
56
+
57
+ if($(".section").eq(idx).is("*") && idx >= 0){
58
+
59
+ targetTop = $(".section").eq(idx).offset().top;
60
+
61
+ $("html, body").animate({scrollTop:targetTop}, "normal");
62
+
63
+ }else{
64
+
65
+ $(this).hide;
66
+
67
+ }
68
+
69
+ return false;
70
+
71
+ });
72
+
73
+ $(".next").on("click", function(e){
74
+
75
+ if($(".section").eq(idxB).is("*") && idxB >= 0){
76
+
77
+ targetTop = $(".section").eq(idxB).offset().top;
78
+
79
+ $("html, body").animate({scrollTop:targetTop}, "normal");
80
+
81
+ }
82
+
83
+ return false;
84
+
85
+ });
86
+
87
+ });
88
+
89
+
90
+
91
+ ```
92
+
93
+
94
+
95
+ 「戻る」ボタンを'.prev'、「進む」ボタンを'.next'として上記のように組んだところ、実装したい挙動は実現できたのですが、最初の'.section'よりさらに上のスクロール位置で'.next'をクリックすると、2つ目の'.section'まで一気に飛んでしまいます。
96
+
97
+ 原因・快活方法など思い当たる方いらっしゃいましたら、ご教授願いたいです。

1

リンク修正

2017/01/24 03:16

投稿

kukuvon
kukuvon

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- https://teratail.com/questions/9525
1
+ [https://teratail.com/questions/9525](https://teratail.com/questions/9525)
2
2
 
3
3
 
4
4