comparison client/digitallibrary/jquery/jquery.digilib.js @ 879:b2ec8244b86e jquery

arrows: positioning works in embedded mode, too
author hertzhaft
date Thu, 17 Mar 2011 19:21:25 +0100
parents f6e2e6831aaf
children 80a695f683c7 cb23fe100d7e
comparison
equal deleted inserted replaced
878:f6e2e6831aaf 879:b2ec8244b86e
1123 var show = settings.showZoomArrows; 1123 var show = settings.showZoomArrows;
1124 console.log('zoom arrows:', show); 1124 console.log('zoom arrows:', show);
1125 if (!show) return; 1125 if (!show) return;
1126 var mode = settings.interactionMode; 1126 var mode = settings.interactionMode;
1127 var arrowNames = settings.buttonSettings[mode].arrowSet; 1127 var arrowNames = settings.buttonSettings[mode].arrowSet;
1128 if (arrowNames == null) return;
1128 // arrow divs are marked with class "keep" 1129 // arrow divs are marked with class "keep"
1129 var $arrowsDiv = $('<div class="keep arrows"/>'); 1130 var $arrowsDiv = $('<div class="keep arrows"/>');
1130 $elem.append($arrowsDiv); 1131 $elem.append($arrowsDiv);
1131 // create all arrow buttons 1132 // create all arrow buttons
1132 $.each(arrowNames, function(i, arrowName){ 1133 $.each(arrowNames, function(i, arrowName){
1135 }; 1136 };
1136 1137
1137 // size and show arrow overlays, called after scaler img is loaded 1138 // size and show arrow overlays, called after scaler img is loaded
1138 var renderZoomArrows = function (data) { 1139 var renderZoomArrows = function (data) {
1139 var settings = data.settings; 1140 var settings = data.settings;
1140 if (isFullArea(data.zoomArea) || !settings.showZoomArrows) return;
1141 var $arrowsDiv = data.$elem.find('div.arrows'); 1141 var $arrowsDiv = data.$elem.find('div.arrows');
1142 if (isFullArea(data.zoomArea) || !settings.showZoomArrows) {
1143 $arrowsDiv.hide();
1144 return;
1145 }
1146 $arrowsDiv.show();
1142 var r = geom.rectangle(data.$scaler); 1147 var r = geom.rectangle(data.$scaler);
1143 // calculate arrow bar width 1148 // calculate arrow bar width
1144 var aw = settings.zoomArrowWidth; 1149 var aw = settings.zoomArrowWidth;
1145 var minWidth = settings.zoomArrowMinWidth; 1150 var minWidth = settings.zoomArrowMinWidth;
1146 // arrow bar width should not exceed 10% of scaler width/height 1151 // arrow bar width should not exceed 10% of scaler width/height
1149 aw = maxWidth; 1154 aw = maxWidth;
1150 if (aw < minWidth) { 1155 if (aw < minWidth) {
1151 aw = minWidth; 1156 aw = minWidth;
1152 } 1157 }
1153 } 1158 }
1154 $arrowsDiv.show(); 1159 // vertical position of left/right image
1155 var arrowData = [{ 1160 var arrowData = [{
1156 name : 'up', 1161 name : 'up',
1157 rect : geom.rectangle(r.x, r.y, r.width, aw), 1162 rect : geom.rectangle(r.x, r.y, r.width, aw),
1158 show : canMove(data, 0, -1) 1163 show : canMove(data, 0, -1)
1159 }, { 1164 }, {
1160 name : 'down', 1165 name : 'down',
1161 rect : geom.rectangle(r.x, r.y + r.height - aw, r.width), 1166 rect : geom.rectangle(r.x, r.y + r.height - aw, r.width, aw),
1162 show : canMove(data, 0, 1) 1167 show : canMove(data, 0, 1)
1163 }, { 1168 }, {
1164 name : 'left', 1169 name : 'left',
1165 rect : geom.rectangle(r.x, r.y, aw, r.height), 1170 rect : geom.rectangle(r.x, r.y, aw, r.height),
1166 show : canMove(data, -1, 0) 1171 show : canMove(data, -1, 0),
1167 }, { 1172 }, {
1168 name : 'right', 1173 name : 'right',
1169 rect : geom.rectangle(r.x + r.width - aw, r.y, aw, r.height), 1174 rect : geom.rectangle(r.x + r.width - aw, r.y, aw, r.height),
1170 show : canMove(data, 1, 0) 1175 show : canMove(data, 1, 0)
1171 }]; 1176 }];
1172 // render a single zoom Arrow 1177 // render a single zoom Arrow
1173 var render = function (i, item) { 1178 var render = function (i, item) {
1174 var $arrow = $arrowsDiv.find('div.button-' + item.name); 1179 var $arrow = $arrowsDiv.find('div.button-' + item.name);
1175 item.rect.adjustDiv($arrow);
1176 if (item.show) { 1180 if (item.show) {
1177 $arrow.show(); 1181 $arrow.show();
1178 } else { 1182 } else {
1179 $arrow.hide(); 1183 $arrow.hide();
1180 } 1184 return;
1185 }
1186 var r = item.rect;
1187 r.adjustDiv($arrow);
1188 var $a = $arrow.contents('a');
1189 var $img = $a.contents('img');
1190 $img.width(aw).height(aw);
1191 // hack for missing vertical-align
1192 if (item.name.match(/left|right/)) {
1193 var top = (r.height - $a.height())/2;
1194 $a.css({'top' : top}); // position : 'relative'
1195 }
1181 }; 1196 };
1182 $.each(arrowData, render); 1197 $.each(arrowData, render);
1183 }; 1198 };
1184 1199
1185 // creates HTML structure for the about view in elem 1200 // creates HTML structure for the about view in elem