Mercurial > hg > digilib
changeset 1276:d2fa5234200f
just saving, no real progress :-(
author | hertzhaft |
---|---|
date | Fri, 07 Feb 2014 16:37:04 +0100 |
parents | 05a07c9852a3 |
children | b7838a6f2958 |
files | webapp/src/main/webapp/jquery/jquery.digilib.js webapp/src/main/webapp/jquery/jquery.digilib.transparent.js |
diffstat | 1 files changed, 60 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.transparent.js Thu Feb 06 19:32:55 2014 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.transparent.js Fri Feb 07 16:37:04 2014 +0100 @@ -77,8 +77,10 @@ }; var defaults = { - // is transparent image visible? + // is the transparent image visible? 'isTransparentVisible' : false, + // is the transparent image a zoomable image (= digilib)? + 'isTransparentZoomable' : true, // Opacity of transparent image 'trop' : 0.5, // digilib file path for transparent image @@ -136,12 +138,18 @@ var createTransparent = function (data) { var settings = data.settings; var cssPrefix = settings.cssPrefix; - var $tp = $('<div id="'+cssPrefix+'transparent"/>'); + var $div = $('<div id="'+cssPrefix+'transparent"/>'); var queryString = fn.getParamString(settings, ['dw', 'dh']); - var file = settings.trfn + var fileParam = settings.trfn ? "&fn=" + settings.trfn : "&pn=" + settings.trpn; - var url = settings.scalerBaseUrl + '?' + queryString + file; + // do we hav a digilib image or an external url? + var zoomable = (fileParam.indexOf('http://') != 0); + url = zoomable + ? settings.scalerBaseUrl + '?' + queryString + fileParam + : fileParam; + settings.isTransparentZoomable = zoomable; + // set the image as background of $div var css = { 'background-image' : 'url(' + url + ')', 'background-repeat' : 'no-repeat', @@ -150,33 +158,70 @@ 'position' : 'absolute', 'opacity' : settings.trop }; - $tp.css(css); - data.$transparent = $tp; - data.$elem.append($tp); - showTransparent(data); + $div.css(css); + data.$transparent = $div; + data.$elem.append($div); }; // show transparent image var showTransparent = function (data) { - var $tp = data.$transparent; - var show = data.settings.isTransparentVisible; - data.settings.isTransparentVisible = !show; + var $div = data.$transparent; + var show = !data.settings.isTransparentVisible; + data.settings.isTransparentVisible = show; fn.highlightButtons(data, 'transparent', show); if (show) { - $tp.fadeIn(); - data.imgRect.adjustDiv($tp); + $div.fadeIn(); + data.imgRect.adjustDiv($div); } else { - $tp.fadeOut(); + $div.fadeOut(); } }; + // adjust transparent image to zoom area + var adjustTransparent = function (data, za) { + console.log('adjustTransparent', za); + var $div = data.$transparent; + var show = data.settings.isTransparentVisible; + if ($div == null || !show) { + return; + } + var imgTrafo = data.imgTrafo; + var $scaler = data.$scaler; + var scalerPos = geom.position($scaler); + var tRect = null; + var newCss = {}; + $div.css(newCss); + }; + // reload display after the transparent has been moved or resized var redisplay = function (data) { packParams(data); fn.redisplay(data); }; + // adjust the ransparent image to a changed zoomarea + var handleChangeZoomArea = function (evt, newZa) { + var data = this; + adjustTransparent(data, newZa); + }; + + var handleUpdate = function (evt) { + console.debug("transparent: handleUpdate"); + var data = this; + adjustTransparent(data, data.zoomArea); + }; + + var handleRedisplay = function (evt) { + console.debug("transparent: handleRedisplay"); + var data = this; + }; + + var handleSetup = function (evt) { + console.debug("transparent: handleSetup"); + var data = this; + }; + // read transparent img from URL parameters var unpackParams = function (data) { var tc = data.settings.tc; @@ -232,7 +277,7 @@ $data.bind('setup', handleSetup); $data.bind('update', handleUpdate); $data.bind('redisplay', handleRedisplay); - $data.bind('dragZoom', handleDragZoom); + $data.bind('changeZoomArea', handleChangeZoomArea); // install buttons if button plugin is present if (digilib.plugins.buttons != null) { installButtons(data); @@ -240,25 +285,6 @@ }; - var handleSetup = function (evt) { - console.debug("transparent: handleSetup"); - var data = this; - }; - - var handleUpdate = function (evt) { - console.debug("transparent: handleUpdate"); - var data = this; - }; - - var handleRedisplay = function (evt) { - console.debug("transparent: handleRedisplay"); - var data = this; - }; - - var handleDragZoom = function (evt, zoomArea) { - var data = this; - }; - // plugin object, containing name, install and init routines // all shared objects are filled by digilib on registration var plugin = {