Mercurial > hg > digilib-old
comparison client/digitallibrary/jquery/jquery.digilib.js @ 633:73357f3dec20 jquery
rendering marks works now
author | robcast |
---|---|
date | Tue, 18 Jan 2011 16:06:22 +0100 |
parents | 4f7b52b97738 |
children | 34ee220a664b |
comparison
equal
deleted
inserted
replaced
631:4f7b52b97738 | 633:73357f3dec20 |
---|---|
211 settings : elemSettings | 211 settings : elemSettings |
212 }; | 212 }; |
213 // store in data element | 213 // store in data element |
214 $elem.data('digilib', data); | 214 $elem.data('digilib', data); |
215 } | 215 } |
216 unpackParams(data); | |
216 // create HTML structure | 217 // create HTML structure |
217 setupScalerDiv(data); | 218 setupScalerDiv(data); |
218 setupButtons(data, 'actionsStandard'); | 219 setupButtons(data, 'actionsStandard'); |
219 // bird's eye view creation - TODO: could be deferred? | 220 // bird's eye view creation - TODO: could be deferred? |
220 setupBirdviewDiv(data); | 221 setupBirdviewDiv(data); |
363 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); | 364 var zoomArea = geom.rectangle(settings.wx, settings.wy, settings.ww, settings.wh); |
364 settings.zoomArea = zoomArea; | 365 settings.zoomArea = zoomArea; |
365 | 366 |
366 // read marks | 367 // read marks |
367 var marks = []; | 368 var marks = []; |
368 if (query.indexOf(";") >= 0) { | 369 var mk = settings.mk || ''; |
369 var pa = query.split(";"); // old format with ";" | 370 if (mk.indexOf(";") >= 0) { |
371 var pa = mk.split(";"); // old format with ";" | |
370 } else { | 372 } else { |
371 var pa = query.split(","); // new format | 373 var pa = mk.split(","); // new format |
372 } | 374 } |
373 for (var i = 0; i < pa.length ; i++) { | 375 for (var i = 0; i < pa.length ; i++) { |
374 var pos = pa[i].split("/"); | 376 var pos = pa[i].split("/"); |
375 if (pos.length > 1) marks.push(geom.position(pos[0], pos[1])); | 377 if (pos.length > 1) { |
378 marks.push(geom.position(pos[0], pos[1])); | |
379 } | |
376 } | 380 } |
377 settings.marks = marks; | 381 settings.marks = marks; |
378 }; | 382 }; |
379 | 383 |
380 // put objects back into parameters | 384 // put objects back into parameters |
547 $(this).digilib('toggleAboutDiv'); | 551 $(this).digilib('toggleAboutDiv'); |
548 }); | 552 }); |
549 }; | 553 }; |
550 | 554 |
551 // returns function for load event of scaler img | 555 // returns function for load event of scaler img |
552 var scalerImgLoadedFn = function(data) { | 556 var scalerImgLoadedFn = function (data) { |
553 var settings = data.settings; | 557 var settings = data.settings; |
554 var $elem = data.target; | 558 var $elem = data.target; |
555 var $img = data.img; | 559 var $img = data.img; |
556 | 560 |
557 return function() { | 561 return function () { |
558 console.debug("img loaded! this=", this, " data=", data); | 562 console.debug("img loaded! this=", this, " data=", data); |
559 var area = settings.zoomArea; | 563 var area = settings.zoomArea; |
560 // create Transform from current area and picsize | 564 // create Transform from current area and picsize |
561 var picpos = $img.offset(); | 565 var picpos = $img.offset(); |
562 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); | 566 var picrect = geom.rectangle(picpos.left, picpos.top, $img.width(), $img.height()); |
567 // scale to screen size | 571 // scale to screen size |
568 trafo.concat(trafo.getScale(picrect)); | 572 trafo.concat(trafo.getScale(picrect)); |
569 trafo.concat(trafo.getTranslation(picrect)); | 573 trafo.concat(trafo.getTranslation(picrect)); |
570 data.imgTrafo = trafo; | 574 data.imgTrafo = trafo; |
571 // display marks | 575 // display marks |
572 //digilib.renderMarks(); | 576 renderMarks(data); |
573 //digilib.showBirdDiv(isBirdDivVisible); | 577 //digilib.showBirdDiv(isBirdDivVisible); |
574 //digilib.showArrows(); // show arrow overlays for zoom navigation | 578 //digilib.showArrows(); // show arrow overlays for zoom navigation |
575 | 579 |
576 }; | 580 }; |
581 }; | |
582 | |
583 // place marks on the image | |
584 var renderMarks = function (data) { | |
585 var $elem = data.target; | |
586 var marks = data.settings.marks; | |
587 for (var i = 0; i < marks.length; i++) { | |
588 var mark = marks[i]; | |
589 if (data.settings.zoomArea.containsPosition(mark)) { | |
590 var mpos = data.imgTrafo.transform(mark); | |
591 // create mark | |
592 var html = '<div class="mark">'+(i+1)+'</div>'; | |
593 var $mark = $(html); | |
594 $elem.append($mark); | |
595 $mark.offset({ left : mpos.x, top : mpos.y}); | |
596 } | |
597 } | |
577 }; | 598 }; |
578 | 599 |
579 // auxiliary function to crop senseless precision | 600 // auxiliary function to crop senseless precision |
580 var cropFloat = function (x) { | 601 var cropFloat = function (x) { |
581 return parseInt(10000 * x) / 10000; | 602 return parseInt(10000 * x) / 10000; |