|
1 | | -/*! jQuery imgViewer - v0.9.0 - 2016-08-07 |
| 1 | +/*! jQuery imgViewer - v0.9.1 - 2016-12-31 |
2 | 2 | * https://github.com/waynegm/imgViewer |
3 | 3 | * Copyright (c) 2016 Wayne Mogg; Licensed MIT */ |
4 | 4 | /* |
|
9 | 9 | options: { |
10 | 10 | zoomStep: 0.1, |
11 | 11 | zoom: 1, |
| 12 | + zoomMax: 0, |
12 | 13 | zoomable: true, |
13 | 14 | dragable: true, |
14 | 15 | onClick: null, |
|
35 | 36 | // the pixel coordinate of the original image at the center of the viewport |
36 | 37 | self.vCenter = {}; |
37 | 38 | // a flag used to decide if a mouse click is part of a drag or a proper click |
38 | | - self.dragging = false; |
| 39 | + self.drag = false; |
39 | 40 | self.pinch = false; |
40 | 41 | // a flag used to check the target image has loaded |
41 | 42 | self.ready = false; |
|
211 | 212 | self.update(); |
212 | 213 | } |
213 | 214 | } |
214 | | - |
215 | | - $zimg.on( "panstart" , function(ev) { |
| 215 | + $zimg.on("pan", function(ev) { |
216 | 216 | ev.preventDefault(); |
217 | | - if (!self.pinch) { |
| 217 | + if (!self.drag) { |
| 218 | + self.drag = true; |
218 | 219 | self.dragXorg = self.vCenter.x; |
219 | 220 | self.dragYorg = self.vCenter.y; |
220 | 221 | startRenderLoop(); |
221 | | - } |
222 | | - }); |
223 | | - |
224 | | - $zimg.on( "panmove", function(ev) { |
225 | | - ev.preventDefault(); |
226 | | - if (!self.pinch) { |
| 222 | + } else { |
227 | 223 | self.vCenter.x = self.dragXorg - ev.gesture.deltaX/self.options.zoom; |
228 | 224 | self.vCenter.y = self.dragYorg - ev.gesture.deltaY/self.options.zoom; |
229 | 225 | } |
230 | 226 | }); |
231 | | - |
| 227 | + |
232 | 228 | $zimg.on( "panend", function(ev) { |
233 | 229 | ev.preventDefault(); |
234 | | - if (!self.pinch) { |
| 230 | + if (self.drag) { |
| 231 | + self.drag = false; |
235 | 232 | stopRenderLoop(); |
236 | 233 | self.update(); |
237 | 234 | } |
|
253 | 250 | _unbind_drag_events: function() { |
254 | 251 | var self = this; |
255 | 252 | var $zimg = $(self.zimg); |
256 | | - $zimg.off("panstart"); |
257 | | - $zimg.off("panmove"); |
| 253 | + $zimg.off("pan"); |
258 | 254 | $zimg.off("panend"); |
259 | 255 | }, |
260 | 256 |
|
|
282 | 278 | return; |
283 | 279 | } |
284 | 280 | break; |
| 281 | + case 'zoomMax': |
| 282 | + if (parseFloat(value) < 0 || isNaN(parseFloat(value))) { |
| 283 | + return; |
| 284 | + } |
| 285 | + break; |
285 | 286 | } |
286 | 287 | var version = $.ui.version.split('.'); |
287 | 288 | if (version[0] > 1 || version[1] > 8) { |
|
449 | 450 | height = $img.height(), |
450 | 451 | offset = $img.offset(), |
451 | 452 | zoom = this.options.zoom, |
| 453 | + zoomMax = this.options.zoomMax, |
452 | 454 | half_width = width/2, |
453 | 455 | half_height = height/2; |
454 | 456 |
|
| 457 | + if (zoomMax !==0) { |
| 458 | + zoom = Math.min(zoom, zoomMax); |
| 459 | + this.options.zoom = zoom; |
| 460 | + } |
455 | 461 | if (zoom <= 1) { |
456 | 462 | zTop = 0; |
457 | 463 | zLeft = 0; |
|
0 commit comments