Mercurial > hg > digilib
comparison client/digitallibrary/jquery/jquery.digilib.regions.js @ 828:7b3e5c666269 jquery
predefine region content with a rel=
author | hertzhaft |
---|---|
date | Tue, 01 Mar 2011 17:12:25 +0100 |
parents | f07b8ed13194 |
children | f381d088da88 |
comparison
equal
deleted
inserted
replaced
825:f07b8ed13194 | 828:7b3e5c666269 |
---|---|
166 $html.contents().remove(); | 166 $html.contents().remove(); |
167 }); | 167 }); |
168 return; | 168 return; |
169 } | 169 } |
170 // empty the div for HTML display | 170 // empty the div for HTML display |
171 $html.append($('<div/>').text('<div class="keep regioncontent">')); | |
171 $.each(data.regions, function(index, region) { | 172 $.each(data.regions, function(index, region) { |
172 var title = "area=" | 173 var area = "area:" |
173 + region.x + "/" + region.y + "/" | 174 + region.x + "/" + region.y + "/" |
174 + region.width + "/" + region.height; | 175 + region.width + "/" + region.height; |
175 $html.append($('<div/>').text('<div class="keep regioncontent" title="' + title + '">')); | 176 $html.append($('<div/>').text('<a href="" rel="' + area + '">')); |
176 $html.append($('<div/>').text('</div>')); | 177 $html.append($('<div/>').text('</a>')); |
177 }); | 178 }); |
179 $html.append($('<div/>').text('</div>')); | |
178 $html.fadeIn(); | 180 $html.fadeIn(); |
179 } | 181 } |
180 }; | 182 }; |
181 | 183 |
182 // store a region div | 184 // store a region div |
237 | 239 |
238 // create regions from HTML | 240 // create regions from HTML |
239 var createRegionsFromHTML = function (data) { | 241 var createRegionsFromHTML = function (data) { |
240 var regions = data.regions; | 242 var regions = data.regions; |
241 var selector = data.settings.regionContentSelector; | 243 var selector = data.settings.regionContentSelector; |
242 var $content = data.$elem.find(selector); | 244 var $content = data.$elem.contents(selector).contents('a'); |
243 console.debug("createRegionsFromHTML", $content); | 245 console.debug("createRegionsFromHTML", $content); |
244 $content.each(function(index, elem) { | 246 $content.each(function(index, a) { |
245 var $div = $(elem); | 247 var $a = $(a); |
246 var title = $div.attr('title'); | 248 var href = $a.attr('href'); |
247 var r = title.replace(/^area=/i, ''); | 249 var rel = $a.attr('rel'); |
248 var pos = r.split("/", 4); | 250 var area = rel.replace(/^area:/i, ''); |
251 var pos = area.split("/", 4); | |
249 var rect = geom.rectangle(pos[0], pos[1], pos[2], pos[3]); | 252 var rect = geom.rectangle(pos[0], pos[1], pos[2], pos[3]); |
250 regions.push(rect); | 253 regions.push(rect); |
251 var $regionDiv = createRegionDiv(regions, index); | 254 var $regionDiv = createRegionDiv(regions, index); |
252 $regionDiv.append($div); | 255 $regionDiv.append($a.clone()); |
253 $div.show(); | 256 // $a.show(); |
254 }); | 257 }); |
255 }; | 258 }; |
256 | 259 |
257 // show a region on top of the scaler image | 260 // show a region on top of the scaler image |
258 var showRegionDiv = function (data, index, anim) { | 261 var showRegionDiv = function (data, index, anim) { |
408 }; | 411 }; |
409 | 412 |
410 // plugin initialization | 413 // plugin initialization |
411 var init = function (data) { | 414 var init = function (data) { |
412 console.debug('initialising regions plugin. data:', data); | 415 console.debug('initialising regions plugin. data:', data); |
413 var $data = $(data); | 416 var $elem = data.$elem; |
414 // regions array | 417 // regions array |
415 data.regions = []; | 418 data.regions = []; |
416 // regions HTML div | 419 // regions div |
417 var $html = $('<div class="keep regionhtml"/>'); | 420 var $html = $('<div class="keep regionHTML"/>'); |
421 $elem.append($html); | |
418 data.$htmlDiv = $html; | 422 data.$htmlDiv = $html; |
419 data.$elem.append($html); | |
420 // no URL-defined regions, no buttons when regions are predefined in HTML | 423 // no URL-defined regions, no buttons when regions are predefined in HTML |
421 if (!data.settings.includeRegionContent) { | 424 var hasRegionContent = data.settings.includeRegionContent; |
425 if (!hasRegionContent) { | |
422 // add "rg" to digilibParamNames | 426 // add "rg" to digilibParamNames |
423 data.settings.digilibParamNames.push('rg'); | 427 data.settings.digilibParamNames.push('rg'); |
424 // additional buttons | 428 // additional buttons |
425 var buttonSettings = data.settings.buttonSettings.fullscreen; | 429 var buttonSettings = data.settings.buttonSettings.fullscreen; |
426 // configure buttons through digilib "regionSet" option | 430 // configure buttons through digilib "regionSet" option |
430 buttonSettings['regionSet'] = buttonSet; | 434 buttonSettings['regionSet'] = buttonSet; |
431 buttonSettings.buttonSets.push('regionSet'); | 435 buttonSettings.buttonSets.push('regionSet'); |
432 } | 436 } |
433 } | 437 } |
434 // install event handler | 438 // install event handler |
439 var $data = $(data); | |
435 $data.bind('setup', handleSetup); | 440 $data.bind('setup', handleSetup); |
436 $data.bind('update', handleUpdate); | 441 $data.bind('update', handleUpdate); |
437 $data.bind('redisplay', handleRedisplay); | 442 $data.bind('redisplay', handleRedisplay); |
438 $data.bind('dragZoom', handleDragZoom); | 443 $data.bind('dragZoom', handleDragZoom); |
439 }; | 444 }; |