Mercurial > hg > digilib-old
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 |