回答編集履歴

2

修正

2018/09/03 15:22

投稿

liveasnotes
liveasnotes

スコア1284

test CHANGED
@@ -108,11 +108,11 @@
108
108
 
109
109
 
110
110
 
111
- # 方法②「バウンスを考慮」take2
111
+ # **方法②「バウンスを考慮」take2**
112
112
 
113
113
  ![イメージ説明](3a4ed271f0d8fc9b9e5f24d8b188432c.gif)
114
114
 
115
- バウンスしそうな範囲内なら`.removeClass('hide')`する
115
+ **バウンスしそうな範囲内なら`.removeClass('hide')`する**
116
116
 
117
117
 
118
118
 

1

追記

2018/09/03 15:22

投稿

liveasnotes
liveasnotes

スコア1284

test CHANGED
@@ -25,3 +25,99 @@
25
25
  - `height:1200px;`は要らない.むしろ上のgifみたいに,要素から文章がはみ出したりする
26
26
 
27
27
  - `fixed`とか`absolute`とかするなら,bodyかなんかに`padding-top`をかけた方が良い
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ # 現状のおさらい
36
+
37
+ ![イメージ説明](504f093e427c4d02573c797941ca1d08.gif)
38
+
39
+ 現状のコードは,少しでも下方にスクロールすると条件を満たしてしまい,`.addClass('hide')`が効いてしまう
40
+
41
+ しかもiOSの場合,デフォルトでバウンスが発生するため,下方スクロールも自動で発生する?
42
+
43
+ →バウンスを無効にするか,バウンスを考慮した条件文にすれば良いのでは
44
+
45
+
46
+
47
+ # 方法①「バウンス無効化」
48
+
49
+ ```css
50
+
51
+ html,
52
+
53
+ body{
54
+
55
+ height: 100vh;/*画面縦幅いっぱい*/
56
+
57
+ overflow: hidden;/*スクロールさせない*/
58
+
59
+ }
60
+
61
+ .body-contents{
62
+
63
+ height: 100%;
64
+
65
+ overflow-x: hidden;/*縦方向のスクロールだけ許可*/
66
+
67
+ }
68
+
69
+ ```
70
+
71
+ に,
72
+
73
+ ```js
74
+
75
+ $(window).on('touchmove.noScroll', function(e) {
76
+
77
+ e.preventDefault();
78
+
79
+ });
80
+
81
+ ```
82
+
83
+ ですかね(未検証)
84
+
85
+ - [iOSはoverflow:hidden;でスクロールを無効にできない](https://qiita.com/mimoe/items/f5f668cebb697d073553)
86
+
87
+ - [iPhone safari/chromeでバウンスさせない!](https://qiita.com/nandai@github/items/d821df077fcf2e8854dd)
88
+
89
+
90
+
91
+ # 方法②「バウンスを考慮」
92
+
93
+ Y軸(縦方向:上から下)に沿って,正の値となる移動(スクロール)なら`.hide`するようにしたい
94
+
95
+ →やってみた(条件文:「スクロール前とスクロール後の座標の差が正なら実行」)
96
+
97
+ ![イメージ説明](b5d72e3b1d5074375f8f794004a0ab01.gif)
98
+
99
+ 最上部に来ているときのみ表示したいなら,スクロール前の値を入れている変数(`startPos`:start position?)の更新を無くしてしまえば良い.
100
+
101
+ →__ついやってしまった.とくに何も考えてはいない__
102
+
103
+ ![イメージ説明](81c8c66d3e1a4ef13ae0a24a3cb2df3c.gif)
104
+
105
+
106
+
107
+ よく考えたら,これってただ単に書き方変えただけになってるんじゃないだろうか...
108
+
109
+
110
+
111
+ # 方法②「バウンスを考慮」take2
112
+
113
+ ![イメージ説明](3a4ed271f0d8fc9b9e5f24d8b188432c.gif)
114
+
115
+ バウンスしそうな範囲内なら`.removeClass('hide')`する
116
+
117
+
118
+
119
+ __もうこれで良くない?__
120
+
121
+
122
+
123
+ # _(:3 」∠)_