1

誰かが私を助けてくれるのではないかと思います。

最初に申し訳ありませんが、これは非常に基本的な質問かもしれませんが、私はこれに慣れていないので、ご容赦ください。

以下のスクリプトを使用して、fancyBox に画像ギャラリーを作成しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
  <title>Gallery</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <script type="text/javascript" src="fancybox/lib/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="fancybox/source/jquery.fancybox.js?v=2.0.6"></script>
    <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
    <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
    <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
    <link rel="stylesheet" type="text/css" href="fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.2" />
    <link rel="stylesheet" type="text/css" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" />
    <link rel="stylesheet" type="text/css" href="fancybox/source/jquery.fancybox.css?v=2.0.6" media="screen" />


  <script type="text/javascript">  

            $('.fancybox').fancybox({
                openEffect  :   'elastic',
                closeEffect :   'elastic',

                padding :   20,
                fitToView   :   true,

                prevEffect :    'none',
                nextEffect :    'none',

                closeBtn  : false,
                arrows : false,

                helpers : {
                    title : {
                        type : 'inside'
                    },
                    buttons : {}
                },

                afterLoad : function() {
                    this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
                }
            });


</script> 
  <style type="text/css">
<!--
.style1 {
    font-size: 14px;
    margin-top: 5px;
    margin-right: 110px;
}
-->
  </style>  
</head>
<body style="font-family: Calibri; color:  #505050; margin-left: 240px; float:left;"/>
<div align="right" class="style1"> <a href = "javascript:document.gallery.submit()"/> Add Images <a/> &larr; View Uploaded Images </div> 
  <form id="gallery" name="gallery" class="page" action="index.php" method="post" style="margin-left: -120px; margin-right: 50px; border-left: 100; caption-side: left;"> 

    <p>
      <?php for ($i = 0; $i < $descriptions->documentElement->childNodes->length; $i++) :  
                          $xmlFile = $descriptions->documentElement->childNodes->item($i);  
                          $name = htmlentities($xmlFile->getAttribute('originalname'), ENT_COMPAT, 'UTF-8');  
                          $description = htmlentities($xmlFile->getAttribute('description'), ENT_COMPAT, 'UTF-8');  
                          $source = $galleryPath . rawurlencode($xmlFile->getAttribute('source'));  
                          $thumbnail = $thumbnailsPath . rawurlencode($xmlFile->getAttribute('thumbnail'));  
                  ?>
      <a class="fancybox" rel="allimages" title="<?php echo $name; ?>" href="<?php echo $source; ?>"><img src="<?php echo $thumbnail; ?>"alt="<?php echo $description; ?>" /></a>
      <?php endfor; ?>  
    </p>
</form>  
</body>
</html> 

ユーザーが画像を削除できる機能を追加したいと考えています。

「famfamfam.com」の「シルク アイコン」を使用して、各画像の左上に配置したい適切なアイコンを見つけましたが、そのアイコンをページに追加する方法がわかりません。

これを行う方法を示すチュートリアルをオンラインで見つけようとしましたが、これまでのところ成功していません。

これを自分のページに追加する方法について、誰かが何らかのガイダンスを提供できるかどうか疑問に思いました.

多くの感謝と敬意

4

1 に答える 1

4

この行の直前:

<a class="fancybox" rel="allimages" title="<?php echo $name; ?>" href="<?php echo $source; ?>"><img src="<?php echo $thumbnail; ?>"alt="<?php echo $description; ?>" /></a>

次のようなものを追加できます。

<img src="path/to/image.png" class="removeImage" alt="Remove this image" />

そして、jQueryで次のようなことを行います。

$('.removeImage').click(function(){
    $(this).next('a.fancybox').remove();
});

ドキュメントに加える変更は他にもたくさんあります。たとえば、すべてのインラインスタイルを削除し、それらを外部スタイルシートにグループ化することをお勧めします。同じことがあなたのJavaScriptにも当てはまります。さらに:

  • あなたはこのようにあなたのオープニングボディタグを自己閉鎖しようとしました:<body />—私たちはそれをしません。
  • を使用するときfont-familyは、フォントのWebセーフリストを作成することをお勧めします。詳細については、こちらをご覧ください:http: //cssfontstack.com/
  • HTMLのalign属性は非推奨になりました

ドキュメントにいくつか変更を加えたので、作業が簡単になりました。HTML/PHPは次のとおりです。

<!doctype html>
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
<head>  

<title>Gallery</title>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  

<!-- styles -->
<link rel="stylesheet" type="text/css" href="fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.2" />
<link rel="stylesheet" type="text/css" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" />
<link rel="stylesheet" type="text/css" href="fancybox/source/jquery.fancybox.css?v=2.0.6" media="screen" />
<link rel="stylesheet" type="text/css" href="screen.css" media="screen" />  
</head>

<body>
<div align="right" class="style1"> <a href = "javascript:document.gallery.submit()"/> Add Images <a/> &larr; View Uploaded Images </div> 
<form id="gallery" name="gallery" class="page" action="index.php" method="post">
<p>
<?php for ($i = 0; $i < $descriptions->documentElement->childNodes->length; $i++) :  
                      $xmlFile = $descriptions->documentElement->childNodes->item($i);  
                      $name = htmlentities($xmlFile->getAttribute('originalname'), ENT_COMPAT, 'UTF-8');  
                      $description = htmlentities($xmlFile->getAttribute('description'), ENT_COMPAT, 'UTF-8');  
                      $source = $galleryPath . rawurlencode($xmlFile->getAttribute('source'));  
                      $thumbnail = $thumbnailsPath . rawurlencode($xmlFile->getAttribute('thumbnail'));  
              ?>
  <a class="fancybox" rel="allimages" title="<?php echo $name; ?>" href="<?php echo $source; ?>"><img src="<?php echo $thumbnail; ?>"alt="<?php echo $description; ?>" /></a>
  <?php endfor; ?>  
</p>
</form>

<!-- scripts -->
<script type="text/javascript" src="fancybox/lib/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="fancybox/source/jquery.fancybox.js?v=2.0.6"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
<script type="text/javascript" src="main.js"></script>
</body>
</html>

...これがあなたのスタイルシートです— screen.css:

body {font-family: Calibri; color: #505050; margin-left: 240px; float:left;}
.style1 {font-size: 14px; margin-top: 5px; margin-right: 110px;}
#gallery {margin-left: -120px; margin-right: 50px; border-left: 100; caption-side: left;}

そして最後に、ページの準備ができたら実行されるスクリプト— main.js:

$(function(){
    $('.removeImage').click(function(){
        $(this).next('a.fancybox').remove();
    });

$('.fancybox').fancybox({
            openEffect  :   'elastic',
            closeEffect :   'elastic',

            padding :   20,
            fitToView   :   true,

            prevEffect :    'none',
            nextEffect :    'none',

            closeBtn  : false,
            arrows : false,

            helpers : {
                title : {
                    type : 'inside'
                },
                buttons : {}
            },

            afterLoad : function() {
                this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
            }
        });
})
于 2012-04-28T13:10:08.737 に答える