teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

scroll位置前後への過敏対策

2017/08/08 09:23

投稿

zohnam
zohnam

スコア1449

answer CHANGED
@@ -16,4 +16,29 @@
16
16
  }
17
17
  s_old = s;
18
18
  });
19
- ```
19
+ ```
20
+
21
+ ##追記
22
+ iPhoneでは`scrollTop`が前後することがあるのがわかりましたので、スライド中は**スライドなう**でフラグ管理して、過敏な反応をしないようにしておけば、うまく行くかと思います。
23
+
24
+ ```javascript
25
+ var slide_now = false;
26
+ var s_old = $(window).scrollTop();// ここに「前回のスクロール位置」を常に保存します
27
+ $(window).on("load scroll", function () {
28
+ if (slide_now) return true;
29
+ var t = 35;
30
+ var s = $(this).scrollTop();// 今回のスクロール位置
31
+ if ((s_old < t)&&(t <= s)){
32
+ slide_now = true;
33
+ $(".cb-header").slideDown("slow",function(){
34
+ slide_now = false;
35
+ });
36
+ } else if ((s < t)&&(t <= s_old)){
37
+ slide_now = true;
38
+ $(".cb-header").slideUp("slow",function(){
39
+ slide_now = false;
40
+ });
41
+ }
42
+ s_old = s;
43
+ });
44
+ ```