|
1 | 1 |
|
2 | 2 | /**
|
3 | 3 | * jquery.verySimpleImageViewer.js
|
4 |
| - * Ver. : 1.0.1 |
5 |
| - * last update: 04/08/2018 |
| 4 | + * Ver. : 1.0.2 |
| 5 | + * last update: 05/08/2018 |
6 | 6 | * Author: meshesha , https://github.com/meshesha
|
7 | 7 | * LICENSE: MIT
|
8 | 8 | * url:https://meshesha.github.io/verySimpleImageViewer
|
|
17 | 17 | maxZoom: '300%',
|
18 | 18 | zoomFactor: '10%',
|
19 | 19 | saveZoomPos: true,
|
| 20 | + setZoomPos: [], |
20 | 21 | mouse: true,
|
21 | 22 | keyboard: true,
|
22 | 23 | toolbar: true,
|
|
28 | 29 | var maxZoom = settings.maxZoom;
|
29 | 30 | var zoomFactor = settings.zoomFactor;
|
30 | 31 | var saveZoomPos = settings.saveZoomPos;
|
| 32 | + var setZoomPos = settings.setZoomPos; |
31 | 33 | var isMouse = settings.mouse;
|
32 | 34 | var isKeyboard = settings.keyboard;
|
33 | 35 | var isToolbar = settings.toolbar;
|
|
133 | 135 |
|
134 | 136 | //Set dimension and position
|
135 | 137 | if(!self.maxZoomCheck(dimension[0],dimension[1])) {
|
136 |
| - zoomLevel = newZoomLevel; |
137 |
| - self.setDimension(dimension[0],dimension[1]); |
138 |
| - self.setPosition(position[0],position[1]); |
139 |
| - self.setMouseCursor(); |
140 |
| - |
| 138 | + self.setZoomPosition(newZoomLevel,dimension[0],dimension[1],position[0],position[1]); |
141 | 139 | //save zoomLevel, dimension, position
|
142 | 140 | if(saveZoomPos){
|
143 | 141 | if (typeof(Storage) !== "undefined") {
|
|
153 | 151 | }
|
154 | 152 | return true;
|
155 | 153 | }
|
| 154 | + self.setZoomPosition = function(zoomLvl,dX,dY,pX ,pY){ |
| 155 | + zoomLevel = parseInt(zoomLvl); |
| 156 | + self.setDimension(dX,dY); |
| 157 | + self.setPosition(pX,pY); |
| 158 | + self.setMouseCursor(); |
| 159 | + } |
| 160 | + self.getZoomInf = function(){ |
| 161 | + var dim_array = self.getDimension(); |
| 162 | + var pos_array = self.getPosition(); |
| 163 | + console.log("[zoomLevel, dimensionX, dimensionY, positionX, positionY]="); |
| 164 | + console.log("[",zoomLevel,",",dim_array[0],",",dim_array[1],",",pos_array[0],",",pos_array[1],"]"); |
| 165 | + //console.log($("#"+divId + " .image_pos_info").length) |
| 166 | + //$("#"+divId).append('<div class="image_pos_info">חדששש</div>'); |
| 167 | + } |
156 | 168 | self.centerImage = function(width,height, x,y) { //width and height of image and (x,y) is the (left,top) of the image
|
157 | 169 | if(typeof width=='undefined' || typeof height=='undefined') {
|
158 | 170 | var temp = self.getDimension();
|
|
280 | 292 | keyCode = event.which, event.preventDefault();
|
281 | 293 | }
|
282 | 294 | keyCode = String.fromCharCode(keyCode);
|
283 |
| - |
284 | 295 | var position = self.getPosition();
|
285 |
| - var LEFT='a',UP='w',RIGHT='d',DOWN='s', CENTER_IMAGE='c', ZOOMIN='=', ZOOMOUT='-'; ///Keys a,w,d,s |
| 296 | + var LEFT='a',UP='w',RIGHT='d',DOWN='s', CENTER_IMAGE='c', ZOOMIN='=', ZOOMOUT='-' , ZOOM_INFO='i'; ///Keys a,w,d,s |
286 | 297 | if(keyCode == LEFT){
|
287 | 298 | position[0]+=speed;
|
288 | 299 | }else if(keyCode == UP){
|
|
297 | 308 | self.zoomTo(zoomLevel+1, self.frameElement.clientWidth/2, self.frameElement.clientHeight/2);
|
298 | 309 | }else if( (keyCode == ZOOMOUT || keyCode == 'z' || keyCode == 'Z') && zoomLevel > 0){
|
299 | 310 | self.zoomTo(zoomLevel-1, self.frameElement.clientWidth/2, self.frameElement.clientHeight/2);
|
| 311 | + }else if(keyCode==ZOOM_INFO || keyCode == 'I'){ |
| 312 | + self.getZoomInf(); |
300 | 313 | }
|
301 | 314 | if(keyCode == LEFT || keyCode == UP || keyCode == RIGHT || keyCode == DOWN) {
|
302 | 315 | position = self.centerImage(image.width,image.height, position[0],position[1]);
|
|
363 | 376 | if(isToolbar){
|
364 | 377 | self.loadToolbar(self);
|
365 | 378 | }
|
366 |
| - //set here saved zoomFactor |
| 379 | + //set here saved zoom dimension and position |
367 | 380 | if(saveZoomPos){
|
368 | 381 | if (typeof(Storage) !== "undefined") {
|
369 | 382 | var zoomlvl = localStorage.getItem(divId+"_zoomlvl");
|
|
373 | 386 | var positiony = localStorage.getItem(divId+"_positiony");
|
374 | 387 | //console.log(zoomlvl,dimensionx,dimensiony,positionx,positiony)
|
375 | 388 | if(zoomlvl !== null){
|
376 |
| - zoomLevel = parseInt(zoomlvl); |
377 |
| - self.setDimension(dimensionx, dimensiony); |
378 |
| - self.setPosition(positionx, positiony); |
379 |
| - self.setMouseCursor(); |
| 389 | + self.setZoomPosition(zoomlvl,dimensionx, dimensiony,positionx, positiony); |
380 | 390 | }
|
381 | 391 | }
|
382 | 392 | }
|
| 393 | + |
| 394 | + //set manual zoom dimension and position |
| 395 | + if(setZoomPos.length == 5){ |
| 396 | + var zLvl = setZoomPos[0]; |
| 397 | + var dimX = setZoomPos[1]; |
| 398 | + var dimY = setZoomPos[2]; |
| 399 | + var posX = setZoomPos[3]; |
| 400 | + var posY = setZoomPos[4]; |
| 401 | + self.setZoomPosition(zLvl,dimX, dimY,posX, posY); |
| 402 | + }else if(setZoomPos.length > 0 && setZoomPos.length < 5){ |
| 403 | + console.log("Error: 'setZoomPos' setting array must contain 5 numbers: [zoomLevel, dimensionX, dimensionY, positionX, positionY].'\n" + |
| 404 | + "click 'i' key after zooming the image to see this information in the console.") |
| 405 | + } |
383 | 406 | }
|
384 | 407 |
|
385 | 408 | //Create self.frameElement - One time initialization
|
|
0 commit comments