https://teratail.com/questions/9525のものから。
javascript
1var idx = -1;
2var sectionPos = 0;
3var scrollTop = 0;
4var targetTop = 0;
5$(function(){
6 //対象要素を検索するためのインデックス取得
7 $(window).on("load scroll", function(e){
8 $(".section").each(function(index, ele){
9 sectionPos = $(ele).offset().top;
10 scrollTop = $(window).scrollTop();
11 idx = -1;
12 if(sectionPos > scrollTop){
13 idx = index;
14 return false;
15 }
16 });
17 });
18 //進む
19 $("#next_btn").on("click", function(e){
20 if($(".section").eq(idx).is("*") && idx >= 0){
21 targetTop = $(".section").eq(idx).offset().top;
22 $("html, body").animate({scrollTop:targetTop}, "normal");
23 }
24 return false;
25 });
26
27 //戻る処理
28 $("#back_btn").on("click", function(e){
29 if($(".section").eq(idx-1).is("*") && idx-1 >= 0){
30 targetTop = $(".section").eq(idx-1).offset().top;
31 $("html, body").animate({scrollTop:targetTop}, "normal");
32 }
33 return false;
34 });
35});
なお、今回は移動先の要素にsectionというクラス、次へボタンにnext_btnというIDが設定してあるものとしているのに加え、戻るボタンにはback_btnというIDが設定してあるものとしています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/09 05:38