花式框:导航按钮不显示,内容在 PHP 数组中


Fancybox: Nav buttons not showing, content in a PHP array

我对Fancybox 2.0.6上的图片库有一点问题。我没有显示导航按钮,只有关闭按钮。所以,我想当我在我的图库脚本中添加插件时我犯了一个错误,以便它只找到一个图像。问题不取决于所使用的浏览器,我在IE,Firefox,Safari,Chrome和Opera上得到它。我的图库脚本是PHP的,就像我网站的所有其他地方一样。我的图像存储在一个数组中,由读取文件夹内容的函数创建。

这是我的脚本。

功能get_files:

// Fonction de lecture du dossier et publication dans un tableau
function get_files($images_dir,$exts = array('jpg')) {
  $files = array();
  if($handle = opendir($images_dir)) {
    while(false !== ($file = readdir($handle))) {
      $extension = strtolower(get_file_extension($file));
      if($extension && in_array($extension,$exts)) {
        $files[] = $file;
      }
    }
    closedir($handle);
  }
  return $files;
}

作品集.php(图库部分)

$image_files = get_files($images_dir);
    if(count($image_files)) {
        $index = 0;
        $firstimage = $image_files[0];
        $thumb = $images_dir.'/'.$firstimage; //Lien: files/photos/$images_dir/premièreimage.JPG
        $page .= '<script type="text/javascript">';
        $page .= '$(".img_gallery").click(function() {';
        $page .= '$.fancybox.open([';
        foreach($image_files as $index=>$file) {
            $index++;
            // echo $file.'<br />';
            //Création des liens image pour javascript
            $link = $images_dir.'/'.$file;
            $page .= "{ href : '".$link."', title : '".$altname."' } ],";
        }
        // Création des liens de la galerie et fermeture du dossier
        $page .= '});</script>';
        $page .= '<h3>Open Gallery</h3><br /><br />';
        $page .= '<a class="img_gallery" href="'.$thumb.'" rel="gallery"><img src="'.$thumb.'" height="342" width="512" alt="Open Gallery" title="Open Gallery"/></a> ';
    }
    else {
      $page .= '<p>There are no images in this gallery.</p>';
    }

以下是我添加插件的行:

<!-- Add jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<!-- Add mousewheel plugin (this is optional) -->
<script type="text/javascript" src="fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<!-- Add fancyBox -->
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js"></script>
<!-- Add Button helper (this is optional) -->
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js"></script>
<!-- Add Thumbnail helper (this is optional) -->
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-thumbs.js"></script>
<!-- Add Media helper (this is optional) -->
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js"></script>
<!-- Gallery Initiators -->
<script type="text/javascript">
    $(document).ready(function() {
        /*$("a[rel='gallery']").fancybox();*/
        $("a[rel='gallery']").fancybox(portfolio,{
            openEffect  : 'elastic',
            closeEffect : 'elastic',
            nextEffet: 'fade',
            prevEffect: 'fade'
        });
    });
</script>

谁能解释我出了什么问题以及如何纠正这一点?我在PHP方面有很好的技能,但我对Javascript很陌生。一些细节更多:我无法为每个图像创建每个链接,我有很多画廊(由 $_GET 值设置),有些包含数百张以上的图像。最后,我只想让每个图库的第一张图像作为图库链接显示在页面上(手动调用)。

提前非常感谢!

对于每个图像的导航按钮和链接:您需要在fancybox的图像元素上具有id,以自动检测图像数组,然后从第一张图像继续,最终将显示两侧的导航按钮。

要只显示每个图库的第一个图像,请使用 css 隐藏整个容器,并在 java 脚本中使用窗口加载函数仅显示父元素的第一个子元素(这将是图像的容器)。希望它确实有意义。