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

質問編集履歴

3

コードの修正

2018/05/10 16:21

投稿

uzr1709
uzr1709

スコア34

title CHANGED
File without changes
body CHANGED
@@ -36,7 +36,6 @@
36
36
  });
37
37
  } else if(agent.search(/Android/) != -1) {
38
38
  $('body').css({'position':'fixed','top':'0'});
39
- $('#main .upper .ico').css({'top':'80vh'});
40
39
  }
41
40
 
42
41
  $('#clearBtn').click(function(){

2

追記

2018/05/10 16:21

投稿

uzr1709
uzr1709

スコア34

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,34 @@
22
22
  恐らくこれが原因なのではと思っておりますが、
23
23
  レスポンシブ対策のためscalableを切る事が出来ません。
24
24
 
25
- touchmoveを使わず、かつiPhoneでもAndroidでもスクロールを禁止する方法はないでしょうか?
25
+ touchmoveを使わず、かつiPhoneでもAndroidでもスクロールを禁止する方法はないでしょうか?
26
+
27
+ Androidにtouchmoveイベントのバグ?があるようなので、
28
+ コードを以下のように書き換えました。
29
+
30
+ ```JavaScript
31
+ $(function(){
32
+ var agent = navigator.userAgent;
33
+ if(agent.search(/iPhone/) != -1) {
34
+ $(window).on('touchmove.noScroll', function(e) {
35
+ e.preventDefault();
36
+ });
37
+ } else if(agent.search(/Android/) != -1) {
38
+ $('body').css({'position':'fixed','top':'0'});
39
+ $('#main .upper .ico').css({'top':'80vh'});
40
+ }
41
+
42
+ $('#clearBtn').click(function(){
43
+ if(agent.search(/iPhone/) != -1) {
44
+ $(window).off('.noScroll');
45
+ } else if(agent.search(/Android/) != -1) {
46
+ $('body').css({'position':'static'});
47
+ }
48
+ });
49
+ });
50
+ ```
51
+
52
+ これでAndroidは思った動きになったのですが、
53
+ iPhoneではスクロール禁止が解除されません。
54
+ 何がいけないのでしょうか?
55
+ 分かる方ご教授お願いいたします。

1

追記

2018/05/10 16:20

投稿

uzr1709
uzr1709

スコア34

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,12 @@
14
14
  FTPでサーバーに上げAndroid実機で確認したところ
15
15
  スクロールができてしまいます。
16
16
  他の方法を調べようにも「touchmove」イベントのやり方しか出てきません。
17
- スマホ実機でスクロールを禁止/解除する方法はないでしょうか?
17
+ スマホ実機でスクロールを禁止/解除する方法はないでしょうか?
18
+
19
+
20
+ [scalableを設定した場合、touchmoveイベントが取得できない](https://www.notice.co.jp/archives/1595)
21
+ こちらの記事によるとmeta情報でscalableを指定しているとtouchmoveが動作しないようで、
22
+ 恐らくこれが原因なのではと思っておりますが、
23
+ レスポンシブ対策のためscalableを切る事が出来ません。
24
+
25
+ touchmoveを使わず、かつiPhoneでもAndroidでもスクロールを禁止する方法はないでしょうか?