2017-04-11 17 views
0

私は学校のプロジェクトに取り組んでいます。私はライトボックスを作成する必要があります。以下は、hrefタグの内容でアラートを表示するように設定されています。 Iveは、href属性をとり、srcタグのlightbox-img divに入れるスクリプトを作ろうとしましたが、毎回、定義されていないか、別のページにリンクするだけです。他の情報が必要な場合は、私が本当にどこに間違っていたかを知りたいということを教えてください。みんなありがとう!ライトボックスが拡大されたimgを表示しない、ただ白いボックス

<div id="gallerySection" > 

    <table align="center" class="thumbs"> 

      <tr> 
       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/Kohli_characterRecreation1.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

       <td> 
        <a href="image/gallery/kohli_editableText3.jpg"> 
         <img src="image/galleryThumbnails/Kohli_editableText3.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/Kohli_frankSinatra.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/postcard.png" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

      </tr> 

      <tr> 

       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/Kohli_splatter.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/Kohli_valentinesDayCard2.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/Kohli_valentinesDayCard.jpg" width="200px" height="200px" alt=""> 
        </a> 
       </td> 


       <td> 
        <a href=""> 
         <img src="image/galleryThumbnails/postcard.png" width="200px" height="200px" alt=""> 
        </a> 
       </td> 

      </tr> 

    </table> 

    <div class="lightbox" data-state="hidden"> 

      <div class="lightbox-container"> 
       <div class="lightbox-content"> 
        <img class="lightbox-img" alt=""> 
       </div> 
      </div> 

    </div> 

CSS

table{ 
    margin: 0 auto; 
    margin-top: .5%; 
    width: 60%; 
} 

td{ 
    padding: 2%; 
} 

td img:hover{ 
    transform: rotate(4deg) ; 
    background-color: white; 
    opacity: .7; 
} 

td img{ 
    border: 1px solid #770BE0; 
} 


.lightbox { 
    position:fixed; 
    z-index: 10; 
    left: 0; 
    right: 0; 
    top: 0; 
    bottom: 0; 
    background-color: rgba(0,0,0,0.5); 
    display: none; 
} 

.lightbox-container{ 
    position: absolute; 
    z-index: 10; 
    left: 15%; 
    right: 15%; 
    bottom: 15%; 
    top: 15%; 
    background-color: #FFFFFF; 
    border-radius: 6px; 
    box-shadow: 1px 1 px 4px #000; 
} 
.lightbox-content{ 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    width: 100%; 
    transform: translate(-50%, -50%); 

} 

.lightbox-img{ 
    display: block; 
    width: 100%; 
} 

.lightbox[data-state="visible"] { 
     display: block; 
} 

jQueryの

<script> 

$(document).ready(function(){ 

    var $thumbs = $('.thumbs'); 
    var $lbImg = $('.lightbox-img'); 
    var $lb = $('.lightbox'); 

    $(".thumbs td").click(function(event) { 

     event.preventDefault(); 
     event.stopPropagation(); 
     alert($(this).filter("[href]").attr('href')); 
     $lbImg.attr("src",content); 
     $lb.attr('data-state', 'visible'); 

    }); 
}); 

</script> 
+1

あなたは 'href'属性のすべては、右の空です実現していますか? – Tricky12

+0

はい、私は2番目のhrefだけを試して試してみました。 – Kylek54

答えて

1

は、あなたがしたい

HTML(私がテストした1は、編集可能なテキストプロジェクトでの第二tdがありました)使用する$.find()の代わりに$.filter()を入力して、リンクのhref属性を、ライトボックスで使用するフル解像度のイメージソースに設定する必要があります。

$(document).ready(function() { 
 

 
    var $thumbs = $('.thumbs'); 
 
    var $lbImg = $('.lightbox-img'); 
 
    var $lb = $('.lightbox'); 
 

 
    $(".thumbs td").click(function(event) { 
 

 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 
    var content = $(this).find("[href]").attr('href'); 
 
    $lbImg.attr("src", content); 
 
    $lb.attr('data-state', 'visible'); 
 

 
    }); 
 
});
table { 
 
    margin: 0 auto; 
 
    margin-top: .5%; 
 
    width: 60%; 
 
} 
 

 
td { 
 
    padding: 2%; 
 
} 
 

 
td img:hover { 
 
    transform: rotate(4deg); 
 
    background-color: white; 
 
    opacity: .7; 
 
} 
 

 
td img { 
 
    border: 1px solid #770BE0; 
 
} 
 

 
.lightbox { 
 
    position: fixed; 
 
    z-index: 10; 
 
    left: 0; 
 
    right: 0; 
 
    top: 0; 
 
    bottom: 0; 
 
    background-color: rgba(0, 0, 0, 0.5); 
 
    display: none; 
 
} 
 

 
.lightbox-container { 
 
    position: absolute; 
 
    z-index: 10; 
 
    left: 15%; 
 
    right: 15%; 
 
    bottom: 15%; 
 
    top: 15%; 
 
    background-color: #FFFFFF; 
 
    border-radius: 6px; 
 
    box-shadow: 1px 1 px 4px #000; 
 
} 
 

 
.lightbox-content { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    width: 100%; 
 
    transform: translate(-50%, -50%); 
 
} 
 

 
.lightbox-img { 
 
    display: block; 
 
    width: 100%; 
 
} 
 

 
.lightbox[data-state="visible"] { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="gallerySection"> 
 

 
    <table align="center" class="thumbs"> 
 

 
    <tr> 
 
     <td> 
 
     <a href="http://kenwheeler.github.io/slick/img/fonz1.png"> 
 
      <img src="http://kenwheeler.github.io/slick/img/fonz1.png" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
     <td> 
 
     <a href="http://3.bp.blogspot.com/_EqZzf-l7OCg/TNmdtcyGBZI/AAAAAAAAAD8/KD5Y23c24go/s1600/homer-simpson-1280x1024.jpg"> 
 
      <img src="http://3.bp.blogspot.com/_EqZzf-l7OCg/TNmdtcyGBZI/AAAAAAAAAD8/KD5Y23c24go/s1600/homer-simpson-1280x1024.jpg" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/Kohli_frankSinatra.jpg" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/postcard.png" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
    </tr> 
 

 
    <tr> 
 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/Kohli_splatter.jpg" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/Kohli_valentinesDayCard2.jpg" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/Kohli_valentinesDayCard.jpg" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 

 
     <td> 
 
     <a href=""> 
 
      <img src="image/galleryThumbnails/postcard.png" width="200px" height="200px" alt=""> 
 
     </a> 
 
     </td> 
 

 
    </tr> 
 

 
    </table> 
 

 
    <div class="lightbox" data-state="hidden"> 
 

 
    <div class="lightbox-container"> 
 
     <div class="lightbox-content"> 
 
     <img class="lightbox-img" alt=""> 
 
     </div> 
 
    </div> 
 

 
    </div>

+0

ありがとう!これは驚くほどうまくいった – Kylek54

+0

@ Kylek54問題なし:) –

+0

私はあなたが私が画像を置く2番目の問題に遭遇したがスケーリングがすべてオフであり、画像が高すぎる場合、任意の考え?とても有難い! :) – Kylek54

関連する問題