X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=ux%2FLightbox.js;h=1091755dfb5fcba916cee82a076bcdeb14737d7a;hb=0b69a11b1055a6d3a3fd0719bdd58b5a235de0e4;hp=05628f4e19a7225887a52e6d97cafe58bdc3d978;hpb=3e4a2b856b3544b03803e5c6f3224477c85d4470;p=roojs1 diff --git a/ux/Lightbox.js b/ux/Lightbox.js index 05628f4e19..1091755dfb 100644 --- a/ux/Lightbox.js +++ b/ux/Lightbox.js @@ -53,20 +53,13 @@ Roo.ux.Lightbox = function(cfg) { Roo.apply(Roo.ux.Lightbox.prototype, { // optiosn.. - /** - * @cfg fileLoadingImage {string} loading image - */ - fileLoadingImage: '/lightbox/images/loading.gif', - /** - * @cfg fileBottomNavCloseImage {string} close image - */ - fileBottomNavCloseImage: '/lightbox/images/closelabel.gif', + /** * @cfg overlayOpacity {number} controls transparency of shadow overlay */ overlayOpacity: 0.8, /** - * @cfg fileLoadingImage {boolean} toggles resizing animations + * @cfg animate {boolean} toggles resizing animations */ animate: true, /** @@ -130,7 +123,7 @@ Roo.apply(Roo.ux.Lightbox.prototype, var dh = Roo.DomHelper; this.el = Roo.DomHelper.append(document.body, { html: - // '
' + + '
' + '
' + '
' + '
' + @@ -165,12 +158,11 @@ Roo.apply(Roo.ux.Lightbox.prototype, var ids = 'roo-lightbox outer-image-container image-container ' + 'lightbox-image hover-nav prev-link next-link loading loading-link ' + 'image-data-container image-data image-details caption number-display ' + - 'bottom-nav bottom-nav-close'; + 'bottom-nav bottom-nav-close roo-lightbox-overlay'; Roo.each(ids.split(' '), function(id){ var vid = id.replace(/\-/g,''); - Roo.log(id); th[vid] = th.el.child('.'+id); if (!th[vid]) { return; @@ -180,13 +172,12 @@ Roo.apply(Roo.ux.Lightbox.prototype, }); this.lightbox = this.roolightbox; - this.overlay = Roo.DomHelper.append(document.body, { html : '' }); - - //Roo.get('overlay').hide(); - //Roo.get('overlay').on('click', this.end, this); + this.overlay = this.roolightboxoverlay; + this.overlay.hide(); + this.lightbox.hide(); this.lightbox.on('click', function(event) { - if (Roo.get(event.getTarget()).hasClass('lightbox')) { + if (Roo.get(event.getTarget()).hasClass('roo-lightbox')) { this.end(); } }, this); @@ -217,20 +208,27 @@ Roo.apply(Roo.ux.Lightbox.prototype, this.end(); }, this); - + this.overlay.on('click', + function(event) { + event.stopEvent(); + this.end(); + }, this); + }, initializeCSS: function() { if (typeof(Roo.ux.Lightbox.css) != 'undefined') { return; } + var rootURL = Roo.BLANK_IMAGE_URL.replace(/\/gray\/s\.gif$/, ''); + Roo.ux.Lightbox.css = Roo.util.CSS.createStyleSheet( { '.roo-lightbox' : { position: 'absolute', left: 0, width: '100%', 'text-align': 'center', - 'line-height': 0, + 'line-height': 0 }, '.roo-lightbox a img' : { border: 'none' }, '.roo-lightbox .outer-image-container' : { @@ -253,20 +251,20 @@ Roo.apply(Roo.ux.Lightbox.prototype, 'line-height':'0' }, - '.roo-lightbox loading a' : { - background:'url(../images/loading.gif) 0 0 no-repeat', + '.roo-lightbox .loading a' : { + background:'url('+ rootURL + '/ux/lightbox/loading.gif) 0 0 no-repeat', display:'block', width:'32px', height:'32px', cursor:'pointer' }, - '.roo-lightbox bottom-nav-close' : { - background:'url(../images/close.gif) 0 0 no-repeat', + '.roo-lightbox .bottom-nav-close' : { + background:'url('+ rootURL + '/ux/lightbox/close.gif) 0 0 no-repeat', height:'26px', width:'26px', cursor:'pointer' }, - '.roo-lightbox .hoverNav' :{ + '.roo-lightbox .hover-nav' :{ position:'absolute', top:'0', left:'0', @@ -286,10 +284,10 @@ Roo.apply(Roo.ux.Lightbox.prototype, '.roo-lightbox .prev-link' : { left:'0','float':'left'}, '.roo-lightbox .next-link' : { right:'0','float':'right'}, '.roo-lightbox .prev-link:hover, .roo-lightbox .prev-link:visited:hover ' :{ - background:'url(../images/prevlabel.gif) left 15% no-repeat' + background:'url('+ rootURL + '/ux/lightbox/prevlabel.gif) left 15% no-repeat' }, '.roo-lightbox .next-link:hover, .roo-lightbox .next-link:visited:hover ' :{ - background:'url(../images/nextlabel.gif) right 15% no-repeat' + background:'url('+ rootURL + '/ux/lightbox/nextlabel.gif) right 15% no-repeat' }, '.roo-lightbox .image-data-container' : { @@ -304,8 +302,17 @@ Roo.apply(Roo.ux.Lightbox.prototype, '.roo-lightbox .image-data' : { padding:'0 10px', color: '#666' }, '.roo-lightbox .image-data .image-details ' : { width: '70%', 'float': 'left', 'text-align': 'left'} , '.roo-lightbox .image-data .caption' : { 'font-weight': 'bold' }, - '.roo-lightbox .image-data .numberDisplay' : { 'display': 'block', clear: 'left', 'padding-bottom': '1.0em' } , - '.roo-lightbox .image-data .bottomNavClose' : { 'float': 'right', 'padding-bottom': '0.7em','outline': 'none'} + '.roo-lightbox .image-data .number-display' : { 'display': 'block', clear: 'left', 'padding-bottom': '1.0em' } , + '.roo-lightbox .image-data .bottom-nav-close' : { 'float': 'right', 'padding-bottom': '0.7em','outline': 'none'} , + '.roo-lightbox-overlay' : { + 'background-color': 'black', + height: '500px', + left: '0px', + position: 'absolute', + top: '0px', + width: '100%', + 'z-index': '90' + } }); }, @@ -348,11 +355,15 @@ Roo.apply(Roo.ux.Lightbox.prototype, */ // stretch overlay to fill page and fade in //var arrayPageSize = this.getPageSize(); - Roo.get(document.body).mask(false); - Roo.get(document.body)._mask.setHeight(Roo.lib.Dom.getDocumentHeight()) - //new Effect.Appear(this.overlay, - // { duration: this.overlayDuration, from: 0.0, to: this.overlayOpacity }); - + + this.overlay.setHeight(Roo.lib.Dom.getDocumentHeight()) ; + this.overlay.setWidth(Roo.lib.Dom.getDocumentWidth()); + this.overlay.fadeIn({ + endOpacity: this.overlayOpacity, + easing: 'easeOut', + duration: this.overlayDuration + }); + //this.imageArray = []; var imageNum = 0; @@ -383,21 +394,21 @@ Roo.apply(Roo.ux.Lightbox.prototype, } */ var s = Roo.get(document).getScroll(); - - // calculate top and left offset for the lightbox + // calculate top and left offset for the lightbox // weird.. why / 10? - var lightboxTop = s.top + (Roo.lib.Dom.getViewHeight() / 10); + + //var lightboxTop = s.top + (Roo.lib.Dom.getViewHeight() / 10); + var lightboxTop = (Roo.lib.Dom.getViewHeight() / 10); var lightboxLeft = s.left this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' , - zIndex : Roo.get(document.body)._mask.getStyle('zIndex') * 1.1 + zIndex : 1000 }) //console.log("show lightbox"); this.lightbox.show(); - this.changeImage(imageNum); }, @@ -412,7 +423,7 @@ Roo.apply(Roo.ux.Lightbox.prototype, // hide elements during transition if (this.animate) { this.loading.setStyle({ - zIndex : Roo.get(document.body)._mask.getStyle('zIndex') * 1.2 + zIndex :1200 }); this.loading.show(); this.loadinglink.setX( (Roo.lib.Dom.getViewWidth() / 2) - 16); @@ -433,12 +444,14 @@ Roo.apply(Roo.ux.Lightbox.prototype, imgPreloader.on('load', function() { - this.lightboximage.dom.src = this.imageArray[this.activeImage].dom.href; + this.lightboximage.dom.src = this.imageArray[this.activeImage].href || + this.imageArray[this.activeImage].dom.href || this.imageArray[this.activeImage].dom.src; - this.resizeImageContainer(imgPreloader.getWidth(), imgPreloader.getHeight()); + this.resizeImageContainer(this.imageArray[this.activeImage].dom.lwidth || imgPreloader.getWidth(), this.imageArray[this.activeImage].dom.lheight || imgPreloader.getHeight()); imgPreloader.remove(); }, this); - imgPreloader.dom.src = this.imageArray[this.activeImage].dom.href; + imgPreloader.dom.src = this.imageArray[this.activeImage].href || + this.imageArray[this.activeImage].dom.href || this.imageArray[this.activeImage].dom.src; }, @@ -463,6 +476,7 @@ Roo.apply(Roo.ux.Lightbox.prototype, ww -= 150; wh -= 150; + // get new width and height var bs = this.borderSize * 2; @@ -648,12 +662,14 @@ Roo.apply(Roo.ux.Lightbox.prototype, if (this.imageArray.length > this.activeImage + 1){ preloadNextImage = Roo.DomHelper.append(document.body, { tag: 'img' } , true); preloadNextImage.on('load', function() { preloadNextImage.remove() }); - preloadNextImage.dom.src = this.imageArray[this.activeImage + 1].dom.href; + preloadNextImage.dom.src = this.imageArray[this.activeImage + 1].href || + this.imageArray[this.activeImage + 1].dom.href || this.imageArray[this.activeImage + 1 ].dom.src;; } if (this.activeImage > 0){ preloadPrevImage = Roo.DomHelper.append(document.body, { tag: 'img' } , true); preloadPrevImage.on('load', function() { preloadPrevImage.remove() }); - preloadPrevImage.dom.src = this.imageArray[this.activeImage - 1].dom.href; + preloadPrevImage.dom.src = this.imageArray[this.activeImage - 1].href || + this.imageArray[this.activeImage - 1].dom.href || this.imageArray[this.activeImage - 1].dom.src; } }, @@ -666,6 +682,7 @@ Roo.apply(Roo.ux.Lightbox.prototype, //console.log('lightbox hide'); this.lightbox.hide(); this.loading.hide(); + this.overlay.hide(); Roo.get(document.body).unmask(); // show all the objects that cause problems.. //$$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });