回答編集履歴
1
scroll位置前後への過敏対策
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
|
+
|