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

質問編集履歴

1

emulateScrollメソッド追記

2017/03/31 15:17

投稿

merry
merry

スコア15

title CHANGED
File without changes
body CHANGED
@@ -108,6 +108,54 @@
108
108
  }
109
109
  ```
110
110
 
111
+
112
+
113
+ ```ここに言語を入力
114
+ emulateScroll : function _emulateScroll(e) {
115
+ e = e || window.event; //for legacy IE
116
+ e.preventDefault();// デフォルトのスクロール動作をキャンセル
117
+ e.cancelBubble = true;
118
+ e.stopPropagation();
119
+ var self = this;
120
+
121
+
122
+ // ここからイベントの処理
123
+ if (!_emulateScroll.setListener) {
124
+ this.addEvent(window, "touchstart", function() {
125
+ self.touchStart();
126
+ });
127
+
128
+ _emulateScroll.setListener = true;
129
+ }
130
+
131
+ if (e.type == "touchmove") {
132
+
133
+ // 割愛 ///////////////////////
134
+
135
+ } else if (e.type == "wheel") {
136
+ Merimiroll.clock = e.timeStamp - Merimiroll.save;
137
+ Merimiroll.save = e.timeStamp;
138
+
139
+ if (Merimiroll.clock < Merimiroll.clock_limit) {
140
+ return false;// 比較結果が指定ミリ秒より少ない場合はキャンセル
141
+ }
142
+
143
+ // pcでスクロールされた時
144
+ if (this.getDelta(e) < 0 && Merimiroll.scroll.y > -distance_max) {
145
+ // 下にスクロールした場合の処理
146
+ Merimiroll.scroll.targetY = (Merimiroll.scroll.y + -Merimiroll.speed);
147
+ } else if (this.getDelta(e) > 0) {
148
+ // 上にスクロールした場合の処理
149
+ if (Merimiroll.scroll.y >= -distance_max && Merimiroll.scroll.y !== 0) {
150
+ Merimiroll.scroll.targetY = (Merimiroll.scroll.y + Merimiroll.speed);
151
+ }
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
157
+
158
+
111
159
  ##トップへ戻るボタンへ登録するイベントハンドラ
112
160
  hrefから#hogeを取得しその要素(移動先)の座標を取得
113
161