main.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. (function($) {
  2. var gallery = new Array();
  3. function init() {
  4. var viewer = $("#iviewer .viewer").
  5. width($(window).width() - 80).
  6. height($(window).height()).
  7. iviewer({
  8. ui_disabled : true,
  9. zoom : 'fit',
  10. onFinishLoad : function(ev) {
  11. $("#iviewer .loader").fadeOut();
  12. $("#iviewer .viewer").fadeIn();
  13. }
  14. }
  15. );
  16. $("#iviewer .zoomin").click(function(e) {
  17. e.preventDefault();
  18. viewer.iviewer('zoom_by', 1);
  19. });
  20. $("#iviewer .zoomout").click(function(e) {
  21. e.preventDefault();
  22. viewer.iviewer('zoom_by', -1);
  23. });
  24. /*
  25. * Populate gallery array.
  26. * NOTE: In order to add image to gallery, Anchor tag of images that are to be opened in lightbox, should have attribute 'rel' set to 'gallery'.
  27. */
  28. $( "a[rel='gallery']" ).each(function( index ) {
  29. gallery[index] = $( this ).attr("href");
  30. });
  31. }
  32. function open(src) {
  33. $("#iviewer").fadeIn().trigger('fadein');
  34. $("#iviewer .loader").show();
  35. $("#iviewer .viewer").hide();
  36. var viewer = $("#iviewer .viewer")
  37. .iviewer('loadImage', src)
  38. .iviewer('set_zoom', 'fit');
  39. }
  40. function close() {
  41. $("#iviewer").fadeOut().trigger('fadeout');
  42. }
  43. $('.go').click(function(e) {
  44. e.preventDefault();
  45. var src = $(this).attr('href');
  46. open(src);
  47. // Refresh next and prev links
  48. refreshNextPrevLinks(src);
  49. });
  50. $("#iviewer .close").click(function(e) {
  51. e.preventDefault();
  52. close();
  53. });
  54. $("#iviewer").bind('fadein', function() {
  55. $(window).keydown(function(e) {
  56. if (e.which == 27) close();
  57. });
  58. });
  59. /*
  60. * refreshNextPrevLinks() refreshes Next and previous links
  61. */
  62. function refreshNextPrevLinks(src){
  63. console.log('RefreshNextPrevLinks called. src: '+src);
  64. var imageIndex = 0;
  65. //Iterate over gallery and find the index of current image.
  66. for (i=0;i<gallery.length;i++)
  67. {
  68. if(src == gallery[i]){
  69. imageIndex = i;
  70. }
  71. }
  72. //Setting Next link
  73. var nextLink = document.getElementById('nextLink');
  74. if(gallery.length > imageIndex+1){
  75. nextLink.href = gallery[imageIndex+1];
  76. nextLink.style.visibility = 'visible';
  77. }else{
  78. nextLink.href = "#";
  79. nextLink.style.visibility = 'hidden';
  80. }
  81. //Setting Prev link
  82. var prevLink = document.getElementById('prevLink');
  83. if(imageIndex > 0){
  84. prevLink.href = gallery[imageIndex-1];
  85. prevLink.style.visibility = 'visible';
  86. }else{
  87. prevLink.setAttribute("href", "#");
  88. prevLink.style.visibility = 'hidden';
  89. }
  90. document.getElementById('imageCount').innerHTML= "Image: "+ (imageIndex+1) + "/" + gallery.length;
  91. }
  92. //Binding keypress event of left arrow and right arrow button. Image would be changed, if right arrow or left arrow button is pressed.
  93. $(document).keyup(function(e) {
  94. //left arrow key
  95. if (e.keyCode == 37) {
  96. if($("#prevLink").attr("href") != "#"){
  97. $("#prevLink").click();
  98. }
  99. }
  100. //right arrow
  101. if (e.keyCode == 39) {
  102. if($("#nextLink").attr("href") != "#"){
  103. $("#nextLink").click();
  104. }
  105. }
  106. });
  107. init();
  108. })(jQuery);