web | image hover enlarge

Image mouse-over enlarge with thumbs and big size images


HTML

<ul class="enlarge">
    <li><img class="enlarge_thumb" src="./img/thumb1.jpg" alt=""><span><img src="./img/big1.jpg" alt=""></span></li>
    <li><img class="enlarge_thumb" src="./img/thumb2.jpg" alt=""><span><img src="./img/big2.jpg" alt=""></span></li>
    <li><img class="enlarge_thumb" src="./img/thumb3.jpg" alt=""><span><img src="./img/big3.jpg" alt=""></span></li>
    <li><img class="enlarge_thumb" src="./img/thumb4.jpg" alt=""><span><img src="./img/big4.jpg" alt=""></span></li>
</ul>

CSS

.enlarge_thumb {height:80px!important;}
ul.enlarge {list-style-type:none;padding-left: 0px;}
ul.enlarge li {display:inline;position:relative;z-index:0;margin:0 6px 0 0;}
ul.enlarge span {position:absolute;left:-9999px;}
ul.enlarge img {height:400px;}
ul.enlarge li:hover {z-index:50;cursor:zoom-in;}
ul.enlarge li:hover span {top:30px;left:-20px;}
ul.enlarge li:hover:nth-child(2) span{left:-100px;}
ul.enlarge li:hover:nth-child(3) span{left:-150px;}
ul.enlarge li:hover:nth-child(4) span{left:-200px;}
ul.enlarge li:hover:nth-child(5) span{left:-240px;}
ul.enlarge img {background-color:#eae9d4;padding:1px;box-shadow:0 0 6px rgba(132, 132, 132, .75);border-radius: 0px;}
ul.enlarge span img {padding:1px;background:#ccc;display:block;}
ul.enlarge span {padding:1px;background:#eae9d4;box-shadow:0 0 20px rgba(0,0,0,0.75);border-radius:0px;font-size:.9em;text-align:center;color:#495a62;}

PHP to help if needed

function imageviewresize($folder,$output_h){         // imageviewresize rescales images for carousel.
  foreach (scandir($folder) as $f){
    $ext = pathinfo($f, PATHINFO_EXTENSION);
    if ( $ext!='jpg' &&  $ext!='jpeg' ){continue;}
    if ( $f[0].$f[1].$f[2].$f[3]=='zzz_' ){continue;}
    $new_filename = $folder.'/zzz_'.$output_h.'_'.$f;
    #if ( is_file($new_filename) ){continue;}
    $image = new Imagick($folder.'/'.$f);
    $dim = $image->getImageGeometry();
    $orig_w = $dim['width'];
    $orig_h = $dim['height']; 
    $scale = $output_h/$orig_h;
    $image->resizeImage($orig_w * $scale,$output_h,Imagick::FILTER_LANCZOS,1);    
    $image->writeImage($new_filename);
    $image->clear();  
  }
}

function carouselgen($path,$images,$thumb_h,$enlarge_h){           // creates carousel.
    if ( !is_array($images) || $images==null ){return null;}
    echo '<ul class="enlarge">';
    for ($i=0;$i<count($images);++$i) {
        $image = $images[$i];
        $thumbimage = $path.'/zzz_'.$thumb_h.'_'.$image;
        $enlargeimage = $path.'/zzz_'.$enlarge_h.'_'.$image;
        echo '<li><img class="enlarge_thumb" src="'.$thumbimage.'" alt="">';
        echo '<span><img src="'.$enlargeimage.'" alt=""></span></li>'.PHP_EOL;     
    }
    echo '</ul>';
}