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

回答編集履歴

2

修正

2018/09/03 15:22

投稿

liveasnotes
liveasnotes

スコア1284

answer CHANGED
@@ -53,9 +53,9 @@
53
53
 
54
54
  よく考えたら,これってただ単に書き方変えただけになってるんじゃないだろうか...
55
55
 
56
- # 方法②「バウンスを考慮」take2
56
+ # **方法②「バウンスを考慮」take2**
57
57
  ![イメージ説明](3a4ed271f0d8fc9b9e5f24d8b188432c.gif)
58
- バウンスしそうな範囲内なら`.removeClass('hide')`する
58
+ **バウンスしそうな範囲内なら`.removeClass('hide')`する**
59
59
 
60
60
  __もうこれで良くない?__
61
61
 

1

追記

2018/09/03 15:22

投稿

liveasnotes
liveasnotes

スコア1284

answer CHANGED
@@ -11,4 +11,52 @@
11
11
  その他思ったこと
12
12
 
13
13
  - `height:1200px;`は要らない.むしろ上のgifみたいに,要素から文章がはみ出したりする
14
- - `fixed`とか`absolute`とかするなら,bodyかなんかに`padding-top`をかけた方が良い
14
+ - `fixed`とか`absolute`とかするなら,bodyかなんかに`padding-top`をかけた方が良い
15
+
16
+ ---
17
+
18
+ # 現状のおさらい
19
+ ![イメージ説明](504f093e427c4d02573c797941ca1d08.gif)
20
+ 現状のコードは,少しでも下方にスクロールすると条件を満たしてしまい,`.addClass('hide')`が効いてしまう
21
+ しかもiOSの場合,デフォルトでバウンスが発生するため,下方スクロールも自動で発生する?
22
+ →バウンスを無効にするか,バウンスを考慮した条件文にすれば良いのでは
23
+
24
+ # 方法①「バウンス無効化」
25
+ ```css
26
+ html,
27
+ body{
28
+ height: 100vh;/*画面縦幅いっぱい*/
29
+ overflow: hidden;/*スクロールさせない*/
30
+ }
31
+ .body-contents{
32
+ height: 100%;
33
+ overflow-x: hidden;/*縦方向のスクロールだけ許可*/
34
+ }
35
+ ```
36
+ に,
37
+ ```js
38
+ $(window).on('touchmove.noScroll', function(e) {
39
+ e.preventDefault();
40
+ });
41
+ ```
42
+ ですかね(未検証)
43
+ - [iOSはoverflow:hidden;でスクロールを無効にできない](https://qiita.com/mimoe/items/f5f668cebb697d073553)
44
+ - [iPhone safari/chromeでバウンスさせない!](https://qiita.com/nandai@github/items/d821df077fcf2e8854dd)
45
+
46
+ # 方法②「バウンスを考慮」
47
+ Y軸(縦方向:上から下)に沿って,正の値となる移動(スクロール)なら`.hide`するようにしたい
48
+ →やってみた(条件文:「スクロール前とスクロール後の座標の差が正なら実行」)
49
+ ![イメージ説明](b5d72e3b1d5074375f8f794004a0ab01.gif)
50
+ 最上部に来ているときのみ表示したいなら,スクロール前の値を入れている変数(`startPos`:start position?)の更新を無くしてしまえば良い.
51
+ →__ついやってしまった.とくに何も考えてはいない__
52
+ ![イメージ説明](81c8c66d3e1a4ef13ae0a24a3cb2df3c.gif)
53
+
54
+ よく考えたら,これってただ単に書き方変えただけになってるんじゃないだろうか...
55
+
56
+ # 方法②「バウンスを考慮」take2
57
+ ![イメージ説明](3a4ed271f0d8fc9b9e5f24d8b188432c.gif)
58
+ バウンスしそうな範囲内なら`.removeClass('hide')`する
59
+
60
+ __もうこれで良くない?__
61
+
62
+ # _(:3 」∠)_