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;"> 

    <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'));  
                  ?>
                  <img src="cross.png" class="removeImage" alt="Remove this image" align="top"/> 
        <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> 

このサイトのアドバイスを通じて、各画像に「十字」アイコンを追加しました。これは、最終的に画像の削除に使用されます。

私はjQueryやスタイルシートなどに非常に慣れていませんが、現在表示されているように、実際の画像の左上隅に十字を配置することはできません。 div。ここに問題のページへのリンクをここに含めました 。

経験豊富な開発者にとって、これは非常に単純なことかもしれませんが、私が言ったように、私は先週、jQueryファイルとCSSファイルを実際に使い始めたばかりです。

誰かがこれをどうやってやるのかについてガイダンスを提供できるのではないかと思いました。

よろしくお願いします

4

2 に答える 2

1

HTML出力を少し再フォーマットし、それを実行できるようにスタイルを追加する必要があります。したがって、forループ内の各画像に対して、次のコードを使用します。

<div style="display: inline-block; position: relative;">
    <a class="fancybox" rel="allimages" title="<?php echo $name; ?>" href="<?php echo $source; ?>">
        <img src="<?php echo $thumbnail; ?>" alt="<?php echo $description; ?>">
    </a>
    <a href="#delete" style="position: absolute; left: 0; top: 0;">
        <img src="cross.png" class="removeImage" alt="Remove this image" align="top"> 
    </a>
</div>

それ以外の場合は、CSSクラスを適用してそれを行うことができます。

.myimage {
    display: inline-block;
    position: relative;
}

.cross {
    position: absolute;
    left: 0;
    top: 0;
}

そして、これらのクラスをHTMLタグに追加します。

<div class="myimage">
    <a class="fancybox" rel="allimages" title="<?php echo $name; ?>" href="<?php echo $source; ?>">
        <img src="<?php echo $thumbnail; ?>" alt="<?php echo $description; ?>">
    </a>
    <a href="#delete" class="cross">
        <img src="cross.png" class="removeImage" alt="Remove this image" align="top"> 
    </a>
</div>
于 2012-04-28T14:00:41.800 に答える
1

デモ http://jsfiddle.net/8B6Zy/

jQueryとCSSを使用して、これを非常にクリーンでシンプルに試してください。

<html>
<head>
<title></title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<style>
#del_icon {
    position:absolute;
    top:0;
    left:0;
    width:15px;
    height:15px;
    background:url('http://www.mapmyfinds.co.uk/development/cross.png');
    background-repeat : no-repeat;
    display:block;
    z-index:2;
    cursor:pointer;
    display:none;
}

.image {
    float:left;
    position:relative;
}

.image a {
    float:left;
    display:inline;
    position:relative;
    z-index:1;
}
</style>

<script>
$(document).ready(function(){

    $(".image").hover(function(){
        $(this).find("#del_icon").show();
    },
    function()
    {
        $(this).find("#del_icon").hide();
    });

});
</script>

</head>

<body>

<div class="image">
  <a href="del.php?id=1" id="del_icon"><span></span></a>
  <a href="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/A-deer-in-Knole-Park-Seve-005.jpg"><img src="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/A-deer-in-Knole-Park-Seve-005.jpg" alt="" width="150"/></a>
</div>

<div class="image">
  <a href="del.php?id=2" id="del_icon"><span></span></a>
  <a href="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/Thumbnails/_47061196_greatbritainjpg.jpg"><img src="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/Thumbnails/_47061196_greatbritainjpg.jpg" alt="" width="150"/></a>
</div>

<div class="image">
  <a href="del.php?id=3" id="del_icon"><span></span></a>
  <a href="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/Thumbnails/Test_Pic_2.jpg"><img src="http://www.mapmyfinds.co.uk/development/UploadedFiles/IRHM73/1/Thumbnails/Test_Pic_2.jpg" alt="" width="150"/></a>
</div>

</body>

</html>
于 2012-04-28T14:14:36.227 に答える