回答編集履歴

1

scroll位置前後への過敏対策

2017/08/08 09:23

投稿

zohnam
zohnam

スコア1441

test CHANGED
@@ -35,3 +35,55 @@
35
35
  });
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ ##追記
42
+
43
+ iPhoneでは`scrollTop`が前後することがあるのがわかりましたので、スライド中は**スライドなう**でフラグ管理して、過敏な反応をしないようにしておけば、うまく行くかと思います。
44
+
45
+
46
+
47
+ ```javascript
48
+
49
+ var slide_now = false;
50
+
51
+ var s_old = $(window).scrollTop();// ここに「前回のスクロール位置」を常に保存します
52
+
53
+ $(window).on("load scroll", function () {
54
+
55
+ if (slide_now) return true;
56
+
57
+ var t = 35;
58
+
59
+ var s = $(this).scrollTop();// 今回のスクロール位置
60
+
61
+ if ((s_old < t)&&(t <= s)){
62
+
63
+ slide_now = true;
64
+
65
+ $(".cb-header").slideDown("slow",function(){
66
+
67
+ slide_now = false;
68
+
69
+ });
70
+
71
+ } else if ((s < t)&&(t <= s_old)){
72
+
73
+ slide_now = true;
74
+
75
+ $(".cb-header").slideUp("slow",function(){
76
+
77
+ slide_now = false;
78
+
79
+ });
80
+
81
+ }
82
+
83
+ s_old = s;
84
+
85
+ });
86
+
87
+ ```
88
+
89
+