Note that there are some explanatory texts on larger screens.

plurals
  1. POmy custom made php/jquery gallery lightbox won't centre as page loads
    text
    copied!<p>I created a custom gallery and it works perfectly in internet explorer however in firefox and chrome it doesn't work like it should. The lightbox doesn't pop up on the clicking the thumbnail link, you have to click it twice, when clicked once the backdrop comes up but not the lightbox, but then on clicking the thumbnail twice it centers and pops up. And I have no clue why, please help.</p> <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;Album&lt;/title&gt; &lt;script type="text/javascript" src="hftpnyc/js/jquery-1.7.1.min.js"&gt;&lt;/script&gt; &lt;link href="albums.css" rel="stylesheet" type="text/css" media="screen"/&gt; &lt;link href="Website/print.css" rel="stylesheet" type="text/css" media="print"/&gt; &lt;style type="text/css"&gt; body { } .backdrop { position:fixed; top:0px; left:0px; width:100%; height:100%; background:black; z-index:50; display:none; } .smllpic a {text-decoration:none;} .box {margin:auto; clear:both; position:fixed; max-height:705px; max-width:905px; background:black; z-index:52; padding:0px; border:black 1.2px solid; overflow:hidden; } .close { position:absolute; right:6px; margin-top:3px; cursor:pointer; font-size:20px; font-family:acens; font-weight:700px; font-stretch:narrower; opacity: .3; } .smllpic img{cursor:pointer; opacity:0.7; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70); }; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="contentcontainer" style="width:100%;clear:both;"&gt; &lt;div id="wrapper" style="width:981px; height:100%; margin:0px auto;"&gt; &lt;div style="margin:0px auto;width:979px;"&gt; &lt;h2 style="font-family:Tahoma, Geneva, sans-serif; color:#333;border-bottom:#A3308E solid 1px; background-color: #E6E6E6;"&gt; Album &lt;/h2&gt; &lt;/div&gt; &lt;div style="float:right; margin-right:3px;"&gt; &lt;form action="" method="post"&gt; &lt;a href="Albums.php"&gt; &lt;input type="button" name="Uploadmre" value="Upload more" style="border: 1px solid #d0ccc9;right:0px;background: #fff;color: #5f95ef;font-size: 11px;font-weight: 700;height:22px; margin-right:7px;"&gt; &lt;/a&gt; &lt;/form&gt; &lt;/div&gt; &lt;div id="page-wrap" style=" width:918px; margin: 0px auto;clear:both;"&gt; &lt;?php error_reporting(0); /* function: returns files from dir */ function get_files($images_dir,$exts = array('jpeg','gif','png','jpg')) { $files = array(); if($handle = opendir($images_dir)) { while(false !== ($file = readdir($handle))) { $extension = strtolower(get_file_extension($file)); if($extension &amp;&amp; in_array($extension,$exts)) { $files[] = $file; } } closedir($handle); } return $files; } /* function: returns a file's extension */ function get_file_extension($file_name) { return substr(strrchr($file_name,'.'),1); } $images_dir = 'hftpnyc/thumbs/'; $thumbs_dir = 'hftpnyc/thumbs/thumbnails/'; $thumbs_width = 100; $images_per_row = 11; $string = ""; /** generate photo gallery **/ $image_files = get_files($images_dir); if(count($image_files)) { $index = 0; foreach($image_files as $index=&gt;$file) { $index++; $thumbnail_image = $thumbs_dir.$file; //if(!file_exists($thumbnail_image)) { //$extension = get_file_extension($thumbnail_image); //if($extension) { //make_thumb($images_dir.$file,$thumbnail_image,$thumbs_width); //} //} error_reporting(0); echo '&lt;div class="smllpic" style=" padding: 0px; margin: 0px; border: 1px solid black; display: block; width: 100px; height:100px; float: left; "&gt;&lt;a href="'.$images_dir.$file.'" rel="lrgimg" class="lightbox"&gt; &lt;img id="thumbs" src="',$thumbnail_image,'" width="100px"/&gt;&lt;/a&gt;&lt;/div&gt;'; if($index % $images_per_row == 0) { echo '&lt;div class="clear"&gt;&lt;/div&gt;'; } } } else { echo '&lt;p&gt;There are no images in this gallery.&lt;/p&gt;'; } ?&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;script type="text/javascript"&gt; $(document).height(); $('.backdrop').height($(document).height()); $(document).ready(function(){ $('.smllpic img').hover(function () { var $this = $(this); $this.stop().animate({'opacity':'1.0'},200); },function () { var $this = $(this); $this.stop().animate({'opacity':'0.7'},200); });}); $(window).bind("load", function() { var preload = new Array(); $(".box").each(function() { s = $(this).attr("src").replace(/\.(.+)$/i, "_on.$1"); preload.push(s) }); var img = document.createElement('img'); $(img).bind('load', function() { if(preload[0]) { this.src = preload.shift(); } }).trigger('load'); }); $(document).ready(function(){ function centreit(){ //get the height and width of the modal var modal_height = $('.box').height(); var modal_width = $('.box').width(); //get the height and width of the page var window_width = $(window).width(); var window_height = $(window).height(); //calculate top and left offset needed for centering var topp = (window_height - modal_height)/2; var left = (window_width - modal_width)/2; //apply new top and left css values $('.box').css({'top' : topp+'px' , 'left' : left+'px', 'right': left+'px','bottom':topp+'px'}); }; $('.lightbox').click(function(e) { e.preventDefault(); // keeps new page from loading var thisPicture = $(this).attr('href'); // path to full sized picture, function getit(){ $('body').append('&lt;div class="backdrop" label="click to close"&gt;&lt;/div&gt;&lt;div class="box" id="centre" &gt;&lt;div class="close"&gt;x&lt;/div&gt;&lt;div style="cursor:pointer; opacity:1;font-family:Agency FB;margin-top:50%; right:-20px;position:fixed;color:white;font-size:50px; z-index:50;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;-moz-box-shadow:0px 0px 5px #444444;-webkit-box-shadow:0px 0px 5px #444444;box-shadow:0px 0px 5px #444444;"&gt;&gt;&lt;/div&gt;&lt;div style="cursor:pointer; opacity:.35;font-family:Agency FB;margin-top:50%; left:-20px; position:absolute; font-size:50px;color:white; z-index:70;-webkit-border-radius:5px;-moz-border-radius: 5px; border-radius:5px;-moz-box-shadow:0px 0px 5px #444444; -webkit-box-shadow:0px 0px 5px #444444; box-shadow:0px 0px 5px #444444;"&gt;&lt;&lt;/div&gt;&lt;img class="motown" src="'+thisPicture+'" style="max-height:705px;max-width:905px;z-index:50;"/&gt;&lt;/div&gt;'); }; $(window).resize(function(){ $('.box').resize(); $('.motown').resize(); centreit(); }); getit(); centreit(); $("html").css("overflow", "hidden"); $('.backdrop').fadeTo(500,0.9); $('.box').children().fadeIn(1000); //$('.backdrop').css({ 'display' : 'block', opacity : 0}); $('.close').click(function(){ close_box();}); $('.backdrop').click(function(){ close_box();}); function close_box(){ $('.backdrop').remove(); $('.box').remove(); $("html").css("overflow", "");}; });}); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload