2016-11-15 104 views
0

我希望你不介意帮助我使用这段代码。 我使用的引导,我有这个网站:如何在照片打开后在照片上放置链接?

<div class="gallery"> 
     <div class="container"> 
     <div class="row"> 
      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port1.jpg" class="img-responsive img-gallery" alt="Projekti i pare"> 
       </a> 
      </div> <!-- /.col --> 

      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port2.jpg" class="img-responsive img-gallery" alt="Projekti i dyte"> 
       </a> 
      </div> <!-- /.col --> 

      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port3.jpg" class="img-responsive img-gallery" alt="Projekti i trete"> 
       </a> 
      </div> <!-- /.col --> 

      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port4.jpg" class="img-responsive img-gallery" alt="Projekti i katert"> 
       </a> 
      </div> <!-- /.col --> 
      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port4.jpg" class="img-responsive img-gallery" alt="Projekti i peste"> 
       </a> 
      </div> <!-- /.col --> 
      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port4.jpg" class="img-responsive img-gallery" alt="Projekti i gjashte"> 
       </a> 
      </div> <!-- /.col --> 
      <div class="col-xs-3 gallery-item"> 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery"> 
        <img src="images/port4.jpg" class="img-responsive img-gallery" alt="Projekti i shtate"> 
       </a> 
        </div> <!-- /.col --> 
       </div> <!--/.row --> 
      </div> <!-- /.container --> 
     </div> <!-- /.gallery --> 

     <div class="modal fade" id="modalGallery" tabindex="-1" role="dialog" aria-labelledby="modalGalleryLabel" aria-hidden="true"> 
     <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
       <h4 class="modal-title" id="modalGalleryLabel">Gallery</h4> 
      </div> <!-- /.modal-header --> 

      <div class="modal-body"> 
       <div id="carouselGallery" class="carousel slide" data-ride="carousel" data-interval="false"> 
        <div class="carousel-inner"> 
        </div> <!-- /.carousel-inner --> 
       </div> <!-- /.carousel --> 
      </div> <!-- /.modal-body --> 

      <div class="modal-footer"> 
       <ul class="pagination"> 
       </ul> 
      </div> <!-- /.modal-footer --> 
     </div> <!-- /.modal-content --> 
    </div> <!-- /.modal-dialog --> 
</div> <!-- /.modal --> 

这是我的CSS:

.gallery{ 
margin-top: 100px; 
    } 
    .gallery-item{ 
    margin-bottom: 30px; 
    } 
    .modal-footer{ 
    text-align: center; 
    } 
    .pagination{ 
    margin: 0; 
    } 

而且我Javacsript

 $(document).ready(function(){ 
    $('.link-gallery').click(function(){ 
    var galleryId = $(this).attr('data-target'); 
    var currentLinkIndex = $(this).index('a[data-target="'+ galleryId +'"]'); 

    createGallery(galleryId, currentLinkIndex); 
    createPagination(galleryId, currentLinkIndex); 

    $(galleryId).on('hidden.bs.modal', function(){ 
     destroyGallry(galleryId); 
     destroyPagination(galleryId); 
    }); 

    $(galleryId +' .carousel').on('slid.bs.carousel', function(){ 
     var currentSlide = $(galleryId +' .carousel .item.active'); 
     var currentSlideIndex = currentSlide.index(galleryId +' .carousel .item'); 

     setTitle(galleryId, currentSlideIndex); 
     setPagination(++currentSlideIndex, true); 
    }) 
}); 

function createGallery(galleryId, currentSlideIndex){ 
    var galleryBox = $(galleryId + ' .carousel-inner'); 

    $('a[data-target="'+ galleryId +'"]').each(function(){ 
     var img = $(this).html(); 
     var galleryItem = $('<div class="item">'+ img +'</div>'); 

     galleryItem.appendTo(galleryBox); 
    }); 

    galleryBox.children('.item').eq(currentSlideIndex).addClass('active'); 
    setTitle(galleryId, currentSlideIndex); 
} 

function destroyGallry(galleryId){ 
    $(galleryId + ' .carousel-inner').html(""); 
} 

function createPagination(galleryId, currentSlideIndex){ 
    var pagination = $(galleryId + ' .pagination'); 
    var carouselId = $(galleryId).find('.carousel').attr('id'); 
    var prevLink = $('<li><a href="#'+ carouselId +'" data-slide="prev">«</a></li>'); 
    var nextLink = $('<li><a href="#'+ carouselId +'" data-slide="next">»</a></li>'); 

    prevLink.appendTo(pagination); 
    nextLink.appendTo(pagination); 

    $('a[data-target="'+ galleryId +'"]').each(function(){ 
     var linkIndex = $(this).index('a[data-target="'+ galleryId +'"]'); 
     var paginationLink = $('<li><a data-target="#carouselGallery" data-slide-to="'+ linkIndex +'">'+ (linkIndex+1) +'</a></li>'); 

     paginationLink.insertBefore('.pagination li:last-child'); 
    }); 

    setPagination(++currentSlideIndex); 
} 

function setPagination(currentSlideIndex, reset = false){ 
    if (reset){ 
     $('.pagination li').removeClass('active'); 
    } 

    $('.pagination li').eq(currentSlideIndex).addClass('active'); 
} 

function destroyPagination(galleryId){ 
    $(galleryId + ' .pagination').html(""); 
} 

function setTitle(galleryId, currentSlideIndex){ 
    var imgAlt = $(galleryId + ' .item').eq(currentSlideIndex).find('img').attr('alt'); 

    $('.modal-title').text(imgAlt); 
} 
     }); 

我想补充的一个href链接照片,当照片变大时,我该怎么办?

+1

请通过提供[MCVE](http://stackoverflow.com/help/mcve) –

+0

来简化您的问题请检查此链接:-http://www.w3schools.com/html/html_images.asp –

回答

1

只需添加<a href=""></a>,而您正在分配galleryItem

像:

var galleryItem = $('<div class="item"><a href="your-link">'+ img +'</a></div>'); 

要不同,不同的链接添加到每个<a>在你的链接使用一个额外的属性“数据链路”,

<a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-1"> 

而且在JS,创建一个变量,通过.attr()功能获得该链接功能&将此链接附加到您的链接中,例如

// Get the link from data attribute 'data-link' 
var imgLink = $(this).attr('data-link'); 

// Append the link into the 'galleryItem' 
var galleryItem = $('<div class="item"><a href="' + imgLink + '">'+ img +'</a></div>'); 

看一看下面的代码片段:

$(document).ready(function(){ 
 
\t \t \t  $('.link-gallery').click(function(){ 
 
\t \t \t  var galleryId = $(this).attr('data-target'); 
 
\t \t \t  var currentLinkIndex = $(this).index('a[data-target="'+ galleryId +'"]'); 
 
\t \t \t  var imgLink = $(this).attr('data-link'); 
 

 
\t \t \t  createGallery(galleryId, currentLinkIndex, imgLink); 
 
\t \t \t  createPagination(galleryId, currentLinkIndex); 
 

 
\t \t \t  $(galleryId).on('hidden.bs.modal', function(){ 
 
\t \t \t   destroyGallry(galleryId); 
 
\t \t \t   destroyPagination(galleryId); 
 
\t \t \t  }); 
 

 
\t \t \t  $(galleryId +' .carousel').on('slid.bs.carousel', function(){ 
 
\t \t \t   var currentSlide = $(galleryId +' .carousel .item.active'); 
 
\t \t \t   var currentSlideIndex = currentSlide.index(galleryId +' .carousel .item'); 
 

 
\t \t \t   setTitle(galleryId, currentSlideIndex); 
 
\t \t \t   setPagination(++currentSlideIndex, true); 
 
\t \t \t  }) 
 
\t \t \t }); 
 

 
\t \t \t function createGallery(galleryId, currentSlideIndex, imgLink){ 
 
\t \t \t  var galleryBox = $(galleryId + ' .carousel-inner'); 
 

 
\t \t \t  $('a[data-target="'+ galleryId +'"]').each(function(){ 
 
\t \t \t   var img = $(this).html(); 
 
\t \t \t   var galleryItem = $('<div class="item"><a href="' + imgLink + '">'+ img +'</a></div>'); 
 

 
\t \t \t   galleryItem.appendTo(galleryBox); 
 
\t \t \t  }); 
 

 
\t \t \t  galleryBox.children('.item').eq(currentSlideIndex).addClass('active'); 
 
\t \t \t  setTitle(galleryId, currentSlideIndex); 
 
\t \t \t } 
 

 
\t \t \t function destroyGallry(galleryId){ 
 
\t \t \t  $(galleryId + ' .carousel-inner').html(""); 
 
\t \t \t } 
 

 
\t \t \t function createPagination(galleryId, currentSlideIndex){ 
 
\t \t \t  var pagination = $(galleryId + ' .pagination'); 
 
\t \t \t  var carouselId = $(galleryId).find('.carousel').attr('id'); 
 
\t \t \t  var prevLink = $('<li><a href="#'+ carouselId +'" data-slide="prev">«</a></li>'); 
 
\t \t \t  var nextLink = $('<li><a href="#'+ carouselId +'" data-slide="next">»</a></li>'); 
 

 
\t \t \t  prevLink.appendTo(pagination); 
 
\t \t \t  nextLink.appendTo(pagination); 
 

 
\t \t \t  $('a[data-target="'+ galleryId +'"]').each(function(){ 
 
\t \t \t   var linkIndex = $(this).index('a[data-target="'+ galleryId +'"]'); 
 
\t \t \t   var paginationLink = $('<li><a data-target="#carouselGallery" data-slide-to="'+ linkIndex +'">'+ (linkIndex+1) +'</a></li>'); 
 

 
\t \t \t   paginationLink.insertBefore('.pagination li:last-child'); 
 
\t \t \t  }); 
 

 
\t \t \t  setPagination(++currentSlideIndex); 
 
\t \t \t } 
 

 
\t \t \t function setPagination(currentSlideIndex, reset = false){ 
 
\t \t \t  if (reset){ 
 
\t \t \t   $('.pagination li').removeClass('active'); 
 
\t \t \t  } 
 

 
\t \t \t  $('.pagination li').eq(currentSlideIndex).addClass('active'); 
 
\t \t \t } 
 

 
\t \t \t function destroyPagination(galleryId){ 
 
\t \t \t  $(galleryId + ' .pagination').html(""); 
 
\t \t \t } 
 

 
\t \t \t function setTitle(galleryId, currentSlideIndex){ 
 
\t \t \t  var imgAlt = $(galleryId + ' .item').eq(currentSlideIndex).find('img').attr('alt'); 
 

 
\t \t \t  $('.modal-title').text(imgAlt); 
 
\t \t \t } 
 
\t \t \t  });
.gallery{ 
 
margin-top: 100px; 
 
    } 
 
    .gallery-item{ 
 
    margin-bottom: 30px; 
 
    } 
 
    .modal-footer{ 
 
    text-align: center; 
 
    } 
 
    .pagination{ 
 
    margin: 0; 
 
    }
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<div class="gallery"> 
 
     <div class="container"> 
 
     <div class="row"> 
 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-1"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i pare"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 

 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-2"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i dyte"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 

 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-3"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i trete"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 

 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-4"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i katert"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-5"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i peste"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-6"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i gjashte"> 
 
       </a> 
 
      </div> <!-- /.col --> 
 
      <div class="col-xs-3 gallery-item"> 
 
       <a href="#galleryImg1" class="link-gallery" data-toggle="modal" data-target="#modalGallery" data-link="your-link-7"> 
 
        <img src="http://placehold.it/200x200" class="img-responsive img-gallery" alt="Projekti i shtate"> 
 
       </a> 
 
        </div> <!-- /.col --> 
 
       </div> <!--/.row --> 
 
      </div> <!-- /.container --> 
 
     </div> <!-- /.gallery --> 
 

 
     <div class="modal fade" id="modalGallery" tabindex="-1" role="dialog" aria-labelledby="modalGalleryLabel" aria-hidden="true"> 
 
     <div class="modal-dialog"> 
 
     <div class="modal-content"> 
 
      <div class="modal-header"> 
 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
 
       <h4 class="modal-title" id="modalGalleryLabel">Gallery</h4> 
 
      </div> <!-- /.modal-header --> 
 

 
      <div class="modal-body"> 
 
       <div id="carouselGallery" class="carousel slide" data-ride="carousel" data-interval="false"> 
 
        <div class="carousel-inner"> 
 
        </div> <!-- /.carousel-inner --> 
 
       </div> <!-- /.carousel --> 
 
      </div> <!-- /.modal-body --> 
 

 
      <div class="modal-footer"> 
 
       <ul class="pagination"> 
 
       </ul> 
 
      </div> <!-- /.modal-footer --> 
 
     </div> <!-- /.modal-content --> 
 
    </div> <!-- /.modal-dialog --> 
 
</div> <!-- /.modal --> 
 

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

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>

希望这有助于!

+0

感谢你很多。但是如果我想在照片上添加不同的链接呢?就像一张照片一个链接一样? – Wavelet

+0

@Wavelet我已经更新了我的答案,看看。 –

+0

老兄,你真了不起。非常感谢。你真的救了我。 – Wavelet

0

请更换一条线在JavaScript

var galleryItem = $('<div class="item"><a href="http://google.com">'+ img +'</a></div>');

希望你能得到。

是的,如果你想替换 http://google.com到另一个,因为你想好。