Mercurial > hg > digilib-old
comparison webapp/src/main/webapp/jquery/jquery.digilib.js @ 989:f4757bf6ab65
new arrows plugin for scroll arrows next to the image.
also new mechanism for specifying insets.
author | robcast |
---|---|
date | Fri, 03 Feb 2012 18:12:47 +0100 |
parents | f58a6ed1464b |
children | 2feb71b40e10 |
comparison
equal
deleted
inserted
replaced
988:b6261d3d68c2 | 989:f4757bf6ab65 |
---|---|
36 | 36 |
37 (function($) { | 37 (function($) { |
38 | 38 |
39 var defaults = { | 39 var defaults = { |
40 // version of this script | 40 // version of this script |
41 'version' : 'jquery.digilib.js 2.1.2b1', | 41 'version' : 'jquery.digilib.js 2.1.2b2', |
42 // logo url | 42 // logo url |
43 'logoUrl' : 'img/digilib-logo-text1.png', | 43 'logoUrl' : 'img/digilib-logo-text1.png', |
44 // homepage url (behind logo) | 44 // homepage url (behind logo) |
45 'homeUrl' : 'http://digilib.berlios.de', | 45 'homeUrl' : 'http://digilib.berlios.de', |
46 // base URL to digilib (e.g. 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary') | 46 // base URL to digilib (e.g. 'http://digilib.mpiwg-berlin.mpg.de/digitallibrary') |
86 'previewImgHeight' : 200, | 86 'previewImgHeight' : 200, |
87 // maximum width or height of preview background image for drag-scroll | 87 // maximum width or height of preview background image for drag-scroll |
88 'maxBgSize' : 10000, | 88 'maxBgSize' : 10000, |
89 // parameters used by background image | 89 // parameters used by background image |
90 'previewImgParamNames' : ['fn','pn','dw','dh','mo','rot'], | 90 'previewImgParamNames' : ['fn','pn','dw','dh','mo','rot'], |
91 // reserved space in full page display (default value accounts for vertical scrollbar) | 91 // reserved space in full page display (default value accounts for body margins) |
92 'scalerInset' : 10 | 92 'scalerInsets' : { 'x' : 16, 'y': 20 } |
93 }; | 93 }; |
94 | 94 |
95 // list of plugins | 95 // list of plugins |
96 var plugins = {}; | 96 var plugins = {}; |
97 // object to export functions to plugins | 97 // object to export functions to plugins |
177 } else { | 177 } else { |
178 // data exists | 178 // data exists |
179 elemSettings = data.settings; | 179 elemSettings = data.settings; |
180 } | 180 } |
181 unpackParams(data); | 181 unpackParams(data); |
182 // list of current insets (dynamic for buttons etc.) | |
183 data.currentInsets = {'static' : elemSettings.scalerInsets}; | |
182 // check if browser knows *background-size | 184 // check if browser knows *background-size |
183 for (var bs in {'':1, '-moz-':1, '-webkit-':1, '-o-':1}) { | 185 for (var bs in {'':1, '-moz-':1, '-webkit-':1, '-o-':1}) { |
184 if ($elem.css(bs+'background-size')) { | 186 if ($elem.css(bs+'background-size')) { |
185 data.hasBgSize = true; | 187 data.hasBgSize = true; |
186 data.bgSizeName = bs+'background-size'; | 188 data.bgSizeName = bs+'background-size'; |
913 | 915 |
914 /** | 916 /** |
915 * returns maximum size for scaler img in fullscreen mode. | 917 * returns maximum size for scaler img in fullscreen mode. |
916 */ | 918 */ |
917 var getFullscreenImgSize = function (data) { | 919 var getFullscreenImgSize = function (data) { |
918 var mode = data.settings.interactionMode; | 920 //var mode = data.settings.interactionMode; |
919 var $win = $(window); | 921 var $win = $(window); |
920 var winH = $win.height(); | 922 var winH = $win.height(); |
921 var winW = $win.width(); | 923 var winW = $win.width(); |
922 var $body = $('body'); | 924 // add all current insets |
923 // include standard body margins and check plausibility | 925 var insets = { 'x' : 0, 'y' : 0}; |
924 var borderW = $body.outerWidth(true) - $body.width(); | 926 for (var n in data.currentInsets) { |
925 if (borderW === 0 || borderW > 100) { | 927 insets.x += data.currentInsets[n].x; |
926 console.debug("fixing border width for getFullscreenImgSize!"); | 928 insets.y += data.currentInsets[n].y; |
927 borderW = data.settings.scalerInset; | 929 }; |
928 } | 930 // accounting for left/right border, body margins and additional requirements |
929 var borderH = $body.outerHeight(true) - $body.height(); | 931 var imgW = winW - insets.x; |
930 if (borderH === 0 || borderH > 100) { | 932 var imgH = winH - insets.y; |
931 console.debug("fixing border height for getFullscreenImgSize!"); | 933 console.debug('screen w/h:', winW, winH, 'window.width', $win.width(), 'img w/h:', imgW, imgH); |
932 borderH = 5; | |
933 } | |
934 var buttonsW = 0; | |
935 if (data.buttons != null) { | |
936 // get button width from settings | |
937 buttonsW = data.settings.buttonSettings[mode].buttonSetWidth * data.settings.visibleButtonSets; | |
938 } | |
939 // account for left/right border, body margins and additional requirements | |
940 var imgW = winW - borderW - buttonsW; | |
941 var imgH = winH - borderH; | |
942 console.debug('screen w/h:', winW, winH, 'window.width', $win.width(), 'border:', borderW, 'buttonsW:', buttonsW, 'img w/h:', imgW, imgH); | |
943 return geom.size(imgW, imgH); | 934 return geom.size(imgW, imgH); |
944 }; | 935 }; |
945 | 936 |
946 /** | 937 /** |
947 * returns a rectangle.with the fullscreen dimensions | 938 * returns a rectangle.with the fullscreen dimensions |