回答編集履歴

1

a

2016/11/10 14:53

投稿

pinpikokun
pinpikokun

スコア376

test CHANGED
@@ -1,14 +1,10 @@
1
- 「event.preventDefault();」は何のために入いるのでしょうか
1
+ angularjsのcontrollerを使うともときれになと思いますが
2
+
3
+ 現状を修正する場合こんな感じでしょうか。
2
4
 
3
5
 
4
6
 
5
- 以下のサンプルリンクだとどちらも拡大できませんが
6
-
7
- ソース的に異なるところはありますか?
8
-
9
-
10
-
11
- [サンプルリンク](https://pinpikokun.github.io/index3.html)
7
+ [サンプルリンク](https://pinpikokun.github.io/index4.html)
12
8
 
13
9
 
14
10
 
@@ -36,39 +32,59 @@
36
32
 
37
33
  <script>
38
34
 
39
- var app = ons.bootstrap('app', []);
35
+ var app = ons.bootstrap('app', []);
40
36
 
41
- var target = $("img.photo-zoom_jq");
37
+ document.addEventListener('init', function(event) {
42
38
 
43
- var prevScale = 1;
39
+ if(event.target.id !== 'page2') return;
44
40
 
45
- var scale = 1;
41
+
46
42
 
47
- $(document).on('transform', 'img.photo-zoom_jq', function(event) {
43
+ var target = $("#page2 img.photo-zoom_jq");
48
44
 
49
- console.log('transform is detected.');
45
+ console.log(target);
50
46
 
51
- scale = Math.max(0.5, Math.min(prevScale * event.originalEvent.gesture.scale, 3));
47
+ var prevScale = 1;
52
48
 
53
- target.css({transform : 'translate(50px, 200px) scale(' + scale + ',' + scale +')'});
49
+ var scale = 1;
54
50
 
55
- });
51
+ $(document).on('transform', '#page2 img.photo-zoom_jq', function(event) {
56
52
 
57
- $(document).on('release', 'img.photo-zoom_jq', function(event) {
53
+ console.log('transform is detected.');
58
54
 
59
- console.log('release is detected.');
55
+ scale = Math.max(0.5, Math.min(prevScale * event.originalEvent.gesture.scale, 3));
60
56
 
61
- prevScale = scale;
57
+ target.css({transform : 'translate(50px, 200px) scale(' + scale + ',' + scale +')'});
62
58
 
63
- });
59
+ });
64
60
 
65
- $(document).on('touchmove', 'img.photo-zoom_jq', function(event) {
61
+ $(document).on('release', '#page2 img.photo-zoom_jq', function(event) {
66
62
 
67
- console.log('touchmove is detected.');
63
+ console.log('release is detected.');
68
64
 
69
- event.preventDefault();
65
+ scale = Math.max(0.5, Math.min(prevScale * event.originalEvent.gesture.scale, 3));
70
66
 
67
+ console.log('scale:' + scale);
68
+
69
+ target.css({transform : 'translate(50px, 200px) scale(' + scale + ',' + scale +')'});
70
+
71
+ console.log('css end.');
72
+
71
- });
73
+ });
74
+
75
+ $(document).on('touchmove', '#page2 img.photo-zoom_jq', function(event) {
76
+
77
+ event.preventDefault();
78
+
79
+ });
80
+
81
+ });
82
+
83
+ document.addEventListener('destroy', function(event) {
84
+
85
+ $(document).off('transform release touchmove');
86
+
87
+ });
72
88
 
73
89
  </script>
74
90
 
@@ -84,7 +100,7 @@
84
100
 
85
101
  <ons-template id="page.html">
86
102
 
87
- <ons-page>
103
+ <ons-page id="page1">
88
104
 
89
105
  <ons-toolbar>
90
106
 
@@ -124,7 +140,7 @@
124
140
 
125
141
  <ons-template id="page2.html">
126
142
 
127
- <ons-page>
143
+ <ons-page id="page2">
128
144
 
129
145
  <ons-toolbar>
130
146