Accueil > Forum > > > > modification lightbox .... bouton close en haut a droite
modification lightbox .... bouton close en haut a droite
vendredi 1 mai 2009 à 13:59:17 |
modification lightbox .... bouton close en haut a droite

petardier
|
bonjour, je souhaite modifier une light box en mettant le bouton close en haut a gauche , plutot qu'en bas. Ainsi, quand une image est plus grande que la fenetre du navigateur, c'est intuitif pour fermer la lightbox, plutot que faire defiler vers le bas je ne sais s'il faut modifier la css (j'ai bidouillé sans succès) ou le .css voici les deux fichiers que j'utilise : merci pour toute aide cyril lightbox.css#lightbox{ position: absolute; top:0; left: 0; width: 100%; z-index:10004; text-align: center; line-height: 0; } #lightbox a img{ border: 0; } #lightbox img{ margin:0; padding:0; position: relative; border: 0; } #outerImageContainer{ position: relative; background-color: #fff; width: 250px; height: 250px; margin: 0 auto; } #imageContainer{ padding: 10px; } #loading{ position: absolute; top: 40%; left: 0%; height: 25%; width: 100%; text-align: center; line-height: 0; } #hoverNav{ position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index:10004; } #imageContainer>#hoverNav{ left: 0;} #hoverNav a{ outline: none;} #prevLink, #nextLink{ width: 49%; height: 100%; background: transparent url(../images/blank.gif) no-repeat; /* Trick IE into showing hover */ display: block; } #prevLink { left: 0; float: left;} #nextLink { right: 0; float: right;} #prevLink:hover, #prevLink:visited:hover { background: url(../images/prevlabel.gif) left 15% no-repeat; } #nextLink:hover, #nextLink:visited:hover { background: url(../images/nextlabel.gif) right 15% no-repeat; } #imageDataContainer{ font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; margin: 0 auto; line-height: 1.4em; overflow: auto; width: 100% } #imageData{ padding:0 10px; color: #666; } #imageData #imageDetails{ width: 70%; float: left; text-align: left; } #imageData #caption{ font-weight: bold; } #imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em; } #imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; } #overlay{ position: absolute; top: 0; left: 0; z-index:10003; width: 100%; height: 500px; background-color: #000; }lightbox.jsvar userAgent = navigator.userAgent.toLowerCase(); var isMSIE = /msie/.test(userAgent) && !/opera/.test(userAgent) function decode_utf8(utftext) { var plaintext = ""; var i=0; var c=c1=c2=0; while(i<utftext.length) { c = utftext.charCodeAt(i); if (c<128) { plaintext += String.fromCharCode(c); i++; } else if((c>191) && (c<224)) { c2 = utftext.charCodeAt(i+1); plaintext += String.fromCharCode(((c&31)<<6) | (c2&63)); i+=2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63)); i+=3; } } return plaintext; } // ----------------------------------------------------------------------------------- // // Lightbox v2.03.3 // by Lokesh Dhakar - http://www.huddletogether.com // 5/21/06 // // For more information on this script, visit: // http://huddletogether.com/projects/lightbox2/ // // Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/ // // Credit also due to those who have helped, inspired, and made their code available to the public. // Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), Thomas Fuchs(mir.aculo.us), and others. // // // ----------------------------------------------------------------------------------- /* Table of Contents ----------------- Configuration Global Variables Extending Built-in Objects - Object.extend(Element) - Array.prototype.removeDuplicates() - Array.prototype.empty() Lightbox Class Declaration - initialize() - updateImageList() - start() - changeImage() - resizeImageContainer() - showImage() - updateDetails() - updateNav() - enableKeyboardNav() - disableKeyboardNav() - keyboardAction() - preloadNeighborImages() - end() Miscellaneous Functions - getPageScroll() - getPageSize() - getKey() - listenKey() - showSelectBoxes() - hideSelectBoxes() - showFlash() - hideFlash() - pause() - initLightbox() Function Calls - addLoadEvent(initLightbox) */ // ----------------------------------------------------------------------------------- // // Configuration // var fileLoadingImage = "images/loading.gif"; var fileBottomNavCloseImage = "images/closelabel.gif"; var overlayOpacity = 0.8; // controls transparency of shadow overlay var animate = false; // toggles resizing animations var resizeSpeed = 7; // controls the speed of the image resizing animations (1=slowest and 10=fastest) // modif à 15 (10 a l'origine) var borderSize = 10; //if you adjust the padding in the CSS, you will need to update this variable // ----------------------------------------------------------------------------------- // // Global Variables // var imageArray = new Array; var activeImage; if(animate == true){ overlayDuration = 0.2; // shadow fade in/out duration if(resizeSpeed > 10){ resizeSpeed = 10;} if(resizeSpeed < 1){ resizeSpeed = 1;} resizeDuration = (11 - resizeSpeed) * 0.15; } else { overlayDuration = 0; resizeDuration = 0; } // ----------------------------------------------------------------------------------- // // Additional methods for Element added by SU, Couloir // - further additions by Lokesh Dhakar (huddletogether.com) // Object.extend(Element, { getWidth: function(element) { element = $(element); return element.offsetWidth; }, setWidth: function(element,w) { element = $(element); element.style.width = w +"px"; }, setHeight: function(element,h) { element = $(element); element.style.height = h +"px"; }, setTop: function(element,t) { element = $(element); element.style.top = t +"px"; }, setLeft: function(element,l) { element = $(element); element.style.left = l +"px"; }, setSrc: function(element,src) { element = $(element); element.src = src; }, setHref: function(element,href) { element = $(element); element.href = href; }, setInnerHTML: function(element,content) { element = $(element); element.innerHTML = content; } }); // ----------------------------------------------------------------------------------- // // Extending built-in Array object // - array.removeDuplicates() // - array.empty() // Array.prototype.removeDuplicates = function () { for(i = 0; i < this.length; i++){ for(j = this.length-1; j>i; j--){ if(this[i][0] == this[j][0]){ this.splice(j,1); } } } } // ----------------------------------------------------------------------------------- Array.prototype.empty = function () { for(i = 0; i <= this.length; i++){ this.shift(); } } // ----------------------------------------------------------------------------------- // // Lightbox Class Declaration // - initialize() // - start() // - changeImage() // - resizeImageContainer() // - showImage() // - updateDetails() // - updateNav() // - enableKeyboardNav() // - disableKeyboardNav() // - keyboardNavAction() // - preloadNeighborImages() // - end() // // Structuring of code inspired by Scott Upton (http://www.uptonic.com/) // var Lightbox = Class.create(); Lightbox.prototype = { // initialize() // Constructor runs on completion of the DOM loading. Calls updateImageList and then // the function inserts html at the bottom of the page which is used to display the shadow // overlay and the image container. // initialize: function() { this.updateImageList(); // Code inserts html at the bottom of the page that looks similar to this: // // <div id="overlay"></div> // <div id="lightbox"> // <div id="outerImageContainer"> // <div id="imageContainer"> // <img id="lightboxImage"> // <div style="" id="hoverNav"> // <a href="#" id="prevLink"></a> // <a href="#" id="nextLink"></a> // </div> // <div id="loading"> // <a href="#" id="loadingLink"> // <img src="images/loading.gif"> // </a> // </div> // </div> // </div> // <div id="imageDataContainer"> // <div id="imageData"> // <div id="imageDetails"> // <span id="caption"></span> // <span id="numberDisplay"></span> // </div> // <div id="bottomNav"> // <a href="#" id="bottomNavClose"> // <img src="images/close.gif"> // </a> // </div> // </div> // </div> // </div> var objBody = document.getElementsByTagName("body").item(0); var objOverlay = document.createElement("div"); objOverlay.setAttribute('id','overlay'); objOverlay.style.display = 'none'; objOverlay.onclick = function() { myLightbox.end(); } objBody.appendChild(objOverlay); var objLightbox = document.createElement("div"); objLightbox.setAttribute('id','lightbox'); objLightbox.style.display = 'none'; objLightbox.onclick = function(e) { // close Lightbox is user clicks shadow overlay if (!e) var e = window.event; var clickObj = Event.element(e).id; if ( clickObj == 'lightbox') { myLightbox.end(); } }; objBody.appendChild(objLightbox); var objOuterImageContainer = document.createElement("div"); objOuterImageContainer.setAttribute('id','outerImageContainer'); objLightbox.appendChild(objOuterImageContainer); // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension. // If animations are turned off, it will be hidden as to prevent a flicker of a // white 250 by 250 box. if(animate){ Element.setWidth('outerImageContainer', 250); Element.setHeight('outerImageContainer', 250); } else { Element.setWidth('outerImageContainer', 1); Element.setHeight('outerImageContainer', 1); } var objImageContainer = document.createElement("div"); objImageContainer.setAttribute('id','imageContainer'); objOuterImageContainer.appendChild(objImageContainer); var objLightboxImage = document.createElement("img"); objLightboxImage.setAttribute('id','lightboxImage'); objImageContainer.appendChild(objLightboxImage); var objHoverNav = document.createElement("div"); objHoverNav.setAttribute('id','hoverNav'); objImageContainer.appendChild(objHoverNav); var objPrevLink = document.createElement("a"); objPrevLink.setAttribute('id','prevLink'); objPrevLink.setAttribute('href','#'); objHoverNav.appendChild(objPrevLink); var objNextLink = document.createElement("a"); objNextLink.setAttribute('id','nextLink'); objNextLink.setAttribute('href','#'); objHoverNav.appendChild(objNextLink); var objLoading = document.createElement("div"); objLoading.setAttribute('id','loading'); objImageContainer.appendChild(objLoading); var objLoadingLink = document.createElement("a"); objLoadingLink.setAttribute('id','loadingLink'); objLoadingLink.setAttribute('href','#'); objLoadingLink.onclick = function() { myLightbox.end(); return false; } objLoading.appendChild(objLoadingLink); var objLoadingImage = document.createElement("img"); objLoadingImage.setAttribute('src', fileLoadingImage); objLoadingLink.appendChild(objLoadingImage); var objImageDataContainer = document.createElement("div"); objImageDataContainer.setAttribute('id','imageDataContainer'); objLightbox.appendChild(objImageDataContainer); var objImageData = document.createElement("div"); objImageData.setAttribute('id','imageData'); objImageDataContainer.appendChild(objImageData); var objImageDetails = document.createElement("div"); objImageDetails.setAttribute('id','imageDetails'); objImageData.appendChild(objImageDetails); var objCaption = document.createElement("span"); objCaption.setAttribute('id','caption'); objImageDetails.appendChild(objCaption); var objNumberDisplay = document.createElement("span"); objNumberDisplay.setAttribute('id','numberDisplay'); objImageDetails.appendChild(objNumberDisplay); var objBottomNav = document.createElement("div"); objBottomNav.setAttribute('id','bottomNav'); objImageData.appendChild(objBottomNav); var objBottomNavCloseLink = document.createElement("a"); objBottomNavCloseLink.setAttribute('id','bottomNavClose'); objBottomNavCloseLink.setAttribute('href','#'); objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; } objBottomNav.appendChild(objBottomNavCloseLink); var objBottomNavCloseImage = document.createElement("img"); objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage); objBottomNavCloseLink.appendChild(objBottomNavCloseImage); }, // // updateImageList() // Loops through anchor tags looking for 'lightbox' references and applies onclick // events to appropriate links. You can rerun after dynamically adding images w/ajax. // updateImageList: function() { if (!document.getElementsByTagName){ return; } var anchors = document.getElementsByTagName('a'); var areas = document.getElementsByTagName('area'); // loop through all anchor tags for (var i=0; i<anchors.length; i++){ var anchor = anchors[i]; var relAttribute = String(anchor.getAttribute('rel')); // use the string.match() method to catch 'lightbox' references in the rel attribute if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){ anchor.onclick = function () {myLightbox.start(this); return false;} } } // loop through all area tags // todo: combine anchor & area tag loops for (var i=0; i< areas.length; i++){ var area = areas[i]; var relAttribute = String(area.getAttribute('rel')); // use the string.match() method to catch 'lightbox' references in the rel attribute if (area.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){ area.onclick = function () {myLightbox.start(this); return false;} } } }, // // start() // Display overlay and lightbox. If image is part of a set, add siblings to imageArray. // start: function(imageLink) { hideSelectBoxes(); hideFlash(); // stretch overlay to fill page and fade in var arrayPageSize = getPageSize(); Element.setWidth('overlay', arrayPageSize[0]); Element.setHeight('overlay', arrayPageSize[1]); new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity }); imageArray = []; imageNum = 0; if (!document.getElementsByTagName){ return; } if (typeof imageLink == 'string') { var splitIdx = imageLink.indexOf('|') var imageTitle = splitIdx != -1 ? imageLink.substr(splitIdx + 1) : '' splitIdx != -1 ? imageLink = imageLink.substr(0, splitIdx) : null imageArray.length = 0 imageArray.push(new Array(imageLink, ((isMSIE) ? decode_utf8(imageTitle) : imageTitle))); } else { var anchors = document.getElementsByTagName( imageLink.tagName); // if image is NOT part of a set.. if((imageLink.getAttribute('rel') == 'lightbox')){ // add single image to imageArray imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'))); } else { // if image is part of a set.. // loop through anchors, find other images in set, and add them to imageArray for (var i=0; i<anchors.length; i++){ var anchor = anchors[i]; if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){ imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title'))); } } imageArray.removeDuplicates(); while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;} } } // calculate top and left offset for the lightbox var arrayPageScroll = getPageScroll(); var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10); var lightboxLeft = arrayPageScroll[0]; Element.setTop('lightbox', lightboxTop); Element.setLeft('lightbox', lightboxLeft); Element.show('lightbox'); this.changeImage(imageNum); }, // // changeImage() // Hide most elements and preload image in preparation for resizing image container. // changeImage: function(imageNum) { activeImage = imageNum; // update global var // hide elements during transition if(animate){ Element.show('loading');} Element.hide('lightboxImage'); Element.hide('hoverNav'); Element.hide('prevLink'); Element.hide('nextLink'); Element.hide('imageDataContainer'); Element.hide('numberDisplay'); imgPreloader = new Image(); // once image is preloaded, resize image container imgPreloader.onload=function(){ Element.setSrc('lightboxImage', imageArray[activeImage][0]); myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height); imgPreloader.onload=function(){}; // clear onLoad, IE behaves irratically with animated gifs otherwise } imgPreloader.src = imageArray[activeImage][0]; }, // // resizeImageContainer() // resizeImageContainer: function( imgWidth, imgHeight) { // get curren width and height this.widthCurrent = Element.getWidth('outerImageContainer'); this.heightCurrent = Element.getHeight('outerImageContainer'); // get new width and height var widthNew = (imgWidth + (borderSize * 2)); var heightNew = (imgHeight + (borderSize * 2)); // scalars based on change from old to new this.xScale = ( widthNew / this.widthCurrent) * 100; this.yScale = ( heightNew / this.heightCurrent) * 100; // calculate size difference between new and old image, and resize if necessary wDiff = this.widthCurrent - widthNew; hDiff = this.heightCurrent - heightNew; if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); } if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); } // if new and old image are same size and no scaling transition is necessary, // do a quick pause to prevent image flicker. if((hDiff == 0) && (wDiff == 0)){ if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);} } Element.setHeight('prevLink', imgHeight); Element.setHeight('nextLink', imgHeight); Element.setWidth( 'imageDataContainer', widthNew); this.showImage(); }, // // showImage() // Display image and begin preloading neighbors. // showImage: function(){ Element.hide('loading'); new Effect.Appear('lightboxImage', { duration: resizeDuration, queue: 'end', afterFinish: function(){ myLightbox.updateDetails(); } }); this.preloadNeighborImages(); }, // // updateDetails() // Display caption, image number, and bottom nav. // updateDetails: function() { // if caption is not null if(imageArray[activeImage][1]){ Element.show('caption'); Element.setInnerHTML( 'caption', imageArray[activeImage][1]); } else Element.hide('caption'); // if image is part of set display 'Image x of x' if(imageArray.length > 1){ Element.show('numberDisplay'); Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length); } new Effect.Parallel( [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration, from: 0.0, to: 1.0 }), new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ], { duration: resizeDuration, afterFinish: function() { // update overlay size and update nav var arrayPageSize = getPageSize(); Element.setHeight('overlay', arrayPageSize[1]); myLightbox.updateNav(); } } ); }, // // updateNav() // Display appropriate previous and next hover navigation. // updateNav: function() { Element.show('hoverNav'); // if not first image in set, display prev image button if(activeImage != 0){ Element.show('prevLink'); document.getElementById('prevLink').onclick = function() { myLightbox.changeImage(activeImage - 1); return false; } } // if not last image in set, display next image button if(activeImage != (imageArray.length - 1)){ Element.show('nextLink'); document.getElementById('nextLink').onclick = function() { myLightbox.changeImage(activeImage + 1); return false; } } this.enableKeyboardNav(); }, // // enableKeyboardNav() // enableKeyboardNav: function() { document.onkeydown = this.keyboardAction; }, // // disableKeyboardNav() // disableKeyboardNav: function() { document.onkeydown = ''; }, // // keyboardAction() // keyboardAction: function(e) { if (e == null) { // ie keycode = event.keyCode; escapeKey = 27; } else { // mozilla keycode = e.keyCode; escapeKey = e.DOM_VK_ESCAPE; } key = String.fromCharCode(keycode).toLowerCase(); if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){ // close lightbox myLightbox.end(); } else if((key == 'p') || (keycode == 37)){ // display previous image if(activeImage != 0){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage - 1); } } else if((key == 'n') || (keycode == 39)){ // display next image if(activeImage != (imageArray.length - 1)){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage + 1); } } }, // // preloadNeighborImages() // Preload previous and next images. // preloadNeighborImages: function(){ if((imageArray.length - 1) > activeImage){ preloadNextImage = new Image(); preloadNextImage.src = imageArray[activeImage + 1][0]; } if(activeImage > 0){ preloadPrevImage = new Image(); preloadPrevImage.src = imageArray[activeImage - 1][0]; } }, // // end() // end: function() { this.disableKeyboardNav(); Element.hide('lightbox'); new Effect.Fade('overlay', { duration: overlayDuration}); showSelectBoxes(); showFlash(); } } // ----------------------------------------------------------------------------------- // // getPageScroll() // Returns array with x,y page scroll values. // Core code from - quirksmode.com // function getPageScroll(){ var xScroll, yScroll; if (self.pageYOffset) { yScroll = self.pageYOffset; xScroll = self.pageXOffset; } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict yScroll = document.documentElement.scrollTop; xScroll = document.documentElement.scrollLeft; } else if (document.body) {// all other Explorers yScroll = document.body.scrollTop; xScroll = document.body.scrollLeft; } arrayPageScroll = new Array(xScroll,yScroll) return arrayPageScroll; } // ----------------------------------------------------------------------------------- // // getPageSize() // Returns array with page width, height and window width, height // Core code from - quirksmode.com // Edit for Firefox by pHaez // function getPageSize(){ var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = window.innerWidth + window.scrollMaxX; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; // console.log(self.innerWidth); // console.log(document.documentElement.clientWidth); if (self.innerHeight) { // all except Explorer if(document.documentElement.clientWidth){ windowWidth = document.documentElement.clientWidth; } else { windowWidth = self.innerWidth; } windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } // console.log("xScroll " + xScroll) // console.log("windowWidth " + windowWidth) // for small pages with total width less then width of the viewport if(xScroll < windowWidth){ pageWidth = xScroll; } else { pageWidth = windowWidth; } // console.log("pageWidth " + pageWidth) arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) return arrayPageSize; } // ----------------------------------------------------------------------------------- // // getKey(key) // Gets keycode. If 'x' is pressed then it hides the lightbox. // function getKey(e){ if (e == null) { // ie keycode = event.keyCode; } else { // mozilla keycode = e.which; } key = String.fromCharCode(keycode).toLowerCase(); if(key == 'x'){ } } // ----------------------------------------------------------------------------------- // // listenKey() // function listenKey () { document.onkeypress = getKey; } // --------------------------------------------------- function showSelectBoxes(){ var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "visible"; } } // --------------------------------------------------- function hideSelectBoxes(){ var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "hidden"; } } // --------------------------------------------------- function showFlash(){ var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) { flashObjects[i].style.visibility = "visible"; } var flashEmbeds = document.getElementsByTagName("embed"); for (i = 0; i < flashEmbeds.length; i++) { flashEmbeds[i].style.visibility = "visible"; } } // --------------------------------------------------- function hideFlash(){ var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) { flashObjects[i].style.visibility = "hidden"; } var flashEmbeds = document.getElementsByTagName("embed"); for (i = 0; i < flashEmbeds.length; i++) { flashEmbeds[i].style.visibility = "hidden"; } } // --------------------------------------------------- // // pause(numberMillis) // Pauses code execution for specified time. Uses busy code, not good. // Help from Ran Bar-On [ran2103@gmail.com] // function pause(ms){ var date = new Date(); curDate = null; do{var curDate = new Date();} while( curDate - date < ms); } /* function pause(numberMillis) { var curently = new Date().getTime() + sender; while (new Date().getTime(); } */ // --------------------------------------------------- function initLightbox() { myLightbox = new Lightbox(); } Event.observe(window, 'load', initLightbox, false);
|
|
vendredi 1 mai 2009 à 14:04:37 |
Re : modification lightbox .... bouton close en haut a droite

Bul3
|
Bonjour, y'a que le css, le javascript là ! non ? alors : sans le html on ne peut rien faire. certes, ça représente sûrement 325987765214 lignes, mais quand il faut..... Cordialement [ mon Site] [ M'écrire]  Bul
|
|
vendredi 1 mai 2009 à 15:44:12 |
Re : modification lightbox .... bouton close en haut a droite

petardier
|
merci pour la reponse le html est tout simple, il appelle la fonction lightbox par :
<img src="img/reception/reception01.jpg" longdesc="javascript:myLightbox.start('img/reception/reception01.jpg');" alt="" />
ce que je veux modifier, c'est la structure de la lightbox dans le css, je pense que ca se passe a ce niveau #imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; }
<!-- Lightbox2 - Start including header stuff --> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> <!-- Lightbox2 - End including header stuff --> <script language="JavaScript" type="text/javascript" src="imageflow.js"></script> </head> <body> <div id="main"> <div id="imageflow"> <div id="loading_bar"> <b>Loading images</b><br/> <img src="loading.gif" width="208" height="13" alt="loading" /> </div> <div id="images"> <img src="img/reception/reception01.jpg" longdesc="javascript:myLightbox.start('img/reception/reception01.jpg');" alt="" /> <img src="img/reception/reception02.jpg" longdesc="javascript:myLightbox.start('img/reception/reception02.jpg');" alt="" /> <img src="img/reception/reception03.jpg" longdesc="javascript:myLightbox.start('img/reception/reception03.jpg');" alt="" /> <img src="img/reception/reception04.jpg" longdesc="javascript:myLightbox.start('img/reception/reception04.jpg');" alt="" /> <img src="img/reception/reception05.jpg" longdesc="javascript:myLightbox.start('img/reception/reception05.jpg');" alt="" /> <img src="img/reception/reception06.jpg" longdesc="javascript:myLightbox.start('img/reception/reception06.jpg');" alt="" /> <img src="img/reception/reception07.jpg" longdesc="javascript:myLightbox.start('img/reception/reception07.jpg');" alt="" /> <img src="img/reception/reception08.jpg" longdesc="javascript:myLightbox.start('img/reception/reception08.jpg');" alt="" /> <img src="img/reception/reception09.jpg" longdesc="javascript:myLightbox.start('img/reception/reception09.jpg');" alt="" /> <img src="img/reception/reception10.jpg" longdesc="javascript:myLightbox.start('img/reception/reception10.jpg');" alt="" /> <img src="img/reception/reception11.jpg" longdesc="javascript:myLightbox.start('img/reception/reception11.jpg');" alt="" /> </div> </div> <div id="captions"></div> <div id="scrollbar"> <div id="slider"></div> </div> <div style="float:left;width:48%;margin-right:2%;"> <br></br> <font COLOR="#cabd91"><b>Portfolio<b></font> <br></br> <b> <a href="reception.html" class="titre">1 </a> <b> <a href="exterieur.html" class="titre">2 </a> <b> <a href="reception.html" class="titre">3 </a> <b> <a href="reception.html" class="titre">4 </a> <b> <a href="reception.html" class="titre">5 </a> <b> <a href="reception.html" class="titre">6 </a>
<b> <a href="contact.html" class="titre"> contacts </a>
</b> </div> </div> </body> </html>
|
|
vendredi 1 mai 2009 à 21:19:40 |
Re : modification lightbox .... bouton close en haut a droite

kazma
|
bonjour tui devrait essayer debugbar c'est une extension pour ie qui te permettra de détecte le css concerne car j'ai regarde et j'ai pense comme pour le css vue le nom mais j'ai l'impression que c'est pas ca mais tu peut essayer de le mettre en position absolute ce qui devrait avoir pour effet de le positionner en haut a gauche et voir a retirer le float right
|
|
dimanche 3 mai 2009 à 11:09:28 |
Re : modification lightbox .... bouton close en haut a droite

leris
|
Salut, le html est généré par le script . voir : // Code inserts html at the bottom of the page that looks similar to this: (....) l'image (images/close.gif) est contenue dans un div (id="bottomNav") lui même dans le div de la lightbox le code qui génère le html:(extrait) var objBottomNav = document.createElement("div"); objBottomNav.setAttribute('id','bottomNav'); objImageData.appendChild(objBottomNav); var objBottomNavCloseLink = document.createElement("a"); objBottomNavCloseLink.setAttribute('id','bottomNavClose'); objBottomNavCloseLink.setAttribute('href','#'); objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; } objBottomNav.appendChild(objBottomNavCloseLink); var objBottomNavCloseImage = document.createElement("img"); objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage); objBottomNavCloseLink.appendChild(objBottomNavCloseImage); }, à mon avis ça va pas etre du gateau ... bon courage. L.
|
|
dimanche 3 mai 2009 à 15:25:31 |
Re : modification lightbox .... bouton close en haut a droite

kazma
|
et le div lui meme est insere dans objImageData.appendChild(objBottomNav) miais apparement pour bottomNav il n'y aurait pas de css il alors il se situe ailleurs
|
|
jeudi 7 mai 2009 à 10:34:33 |
Re : modification lightbox .... bouton close en haut a droite

cyril06300
|
merci ... c'est un peu obscur pour moi l'autre solution que j'ai, c'est de rendre toute la lightbox réactive au click, et la fermer quand on click sur l'image par contre je ne sais pas ou inserer dans le lightbox.js le onclick .....
objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; }
|
|
Cette discussion est classée dans : function, var, element, document, if
Répondre à ce message
Sujets en rapport avec ce message
Player multi format sécuriter java & php [ par c2bomb ]
bonjour a tous,je cherche a afficher mon player,dans une fenetre style popup,mais hélas je suis vraiment nulle en javascript...si quelq'un peut m'aide
2 menuS deroulants java dans une page [ par DEVLYNE ]
Bonjour!Sachez que je suis uns très grande débutante mais j'ai un petit souci.J'utilise un logiciel gratuit: Coffee Cup DHTML menu pour faire mes menu
Compilation conditionnelle. [ par A3nigma64 ]
J'ai trouvé un script assez bien pour faire un compte à rebours mais voila lorsque je l'applique sur une de mes page web le compte à rebours ne s'affi
Liste déroulante avec recherche par clavier [ par chahy ]
Bonjour les amiesj'ai un petit probléme que je n'arrive pas a le resoudre , je veux que le resultat trouvez avec cette Liste déroulante avec recherche
chrono [ par comrad85 ]
salut a tous!!je suis nouveau sur le site!! je debute en javascript.voila j'ai essayé de faire un chrono et j'aimerai bien avoir une petite aide pour
explorateur de fichiers [ par Sven666 ]
Bon voilà une journée que je cherche sans succès...Je ne pose jamais de questions mais là j'avou etre perdu.Mon probleme est que je cherche a ouvrir u
fausse popup [ par macone59 ]
Je cherche à faire une fausse popup. C'est à dire qu'au depart j'ai une img visible puis au sur vol de celle-ci une image apparait en plus grand.Voici
Une ame charitable pour arrander un script [ par balous001 ]
bonjour a tous et a toutes !Je sollicite votre aide pour arranger un script defectueux.Je m'explique:Je vient de crée un forum chez l'hebergeur forum
Afficher texte avec X et Y [ par bshaka ]
Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|