2017-10-01 7 views
0

ギャラリーの前のイメージに応じて表示されたり消えたりするイメージタイトル(テキスト)のリストを追加します。 これはfrom this codeペンcode penこの既存のJquery画像ギャラリーの画像にキャプションを追加するにはどうすればよいですか?

私はタイトルを含む文字列のリストを作成しようとしましたが、タイトルは一度に表示されました。

この

は私がリストを追加しようとしましたコードの一部..です両方 image urlcaption text保つためにあなたの photos arrayを変更して、コードペン

card.addClass("photo").css({ 
      "top": i * -6 + "px", 
      "left": (i * 4.5) + "px", 
      "width": 100-i*5 + "%", 
      "background": bgColor 
     }).appendTo(gallery); 

     var imgContainer = $("<div>").addClass("imgContainer").appendTo(card); 
     var img = $("<img>").attr("src", photos[i]).appendTo(imgContainer); 
     var membre = $("<div>").addClass("membre").appendTo(card); 
     var nom = $("<div>").addClass("nom").appendTo(membre); 
     var statut = $("<div>").addClass("statut").appendTo(membre); 
    } 

    $(".photo").on("click", function() { 
     var i=0; 
     if ($(this).index() == $(".photo").length - 1 && animation == false) 
      $(".nom").text(names[i]); 
      i++; 
      swipePhoto(this); 
    }); 

答えて

0

でwholleコードを確認してください。次に、別のdivを作成してcaptionを保持し、imageと同じカードに追加します。

以下の作業例を参照してください。

// Images from http://megatruh.deviantart.com/ 
 

 
$(document).ready(function() { 
 
    var photos = [{ 
 
     image: "http://pre04.deviantart.net/ef3d/th/pre/f/2014/046/3/e/quiet_calamity_by_megatruh-d76k76f.jpg", 
 
     caption: "Image one caption" 
 
    }, 
 
    { 
 
     image: "http://pre07.deviantart.net/6c73/th/pre/f/2014/119/7/7/island___by_megatruh-d7ginlh.jpg", 
 
     caption: "Image two caption" 
 
    }, 
 
    { 
 
     image: "http://pre05.deviantart.net/dce1/th/pre/f/2013/361/7/d/somnium_by_megatruh-d6zloar.jpg", 
 
     caption: "Image three caption" 
 
    }, 
 
    { 
 
     image: "http://pre03.deviantart.net/7139/th/pre/f/2013/067/d/8/the_world_is_ahead___by_megatruh-d5xchxw.jpg", 
 
     caption: "Image four caption" 
 
    }, 
 
    { 
 
     image: "http://pre02.deviantart.net/265c/th/pre/f/2012/326/4/0/a_worthy_brother___by_megatruh-d5luhah.jpg", 
 
     caption: "Image five caption" 
 
    }, 
 
    { 
 
     image: "http://pre12.deviantart.net/d18b/th/pre/f/2012/272/d/e/in_asgard___by_megatruh-d5g8nah.jpg", 
 
     caption: "Image six caption" 
 
    } 
 
    ]; 
 

 
    var direction = 1, 
 
    animation = false, 
 
    nbPhotos = photos.length, 
 
    gallery = $("#gallery"); 
 

 
    function init() { 
 
    for (var i = nbPhotos - 1; i >= 0; i--) { 
 
     var color = 255 - i * 10, 
 
     bgColor = "rgba(" + color + ", " + color + ", " + color + ", 1)", 
 
     card = $("<div>"); 
 

 
     card 
 
     .addClass("photo") 
 
     .css({ 
 
      top: i * -6 + "px", 
 
      left: i * 4.5 + "px", 
 
      width: 100 - i * 5 + "%", 
 
      background: bgColor 
 
     }) 
 
     .appendTo(gallery); 
 

 
     //Append caption container to the card 
 
     /////////////////////////////////////// 
 

 
     var captionContainer = $("<div>") 
 
     .addClass("captionContainer") 
 
     .html(photos[i].caption) 
 
     .appendTo(card); 
 

 
     ////////////////////////////////////// 
 

 
     var imgContainer = $("<div>") 
 
     .addClass("imgContainer") 
 
     .appendTo(card); 
 
     var img = $("<img>") 
 
     .attr("src", photos[i].image) 
 
     .appendTo(imgContainer); 
 
    } 
 

 
    $(".photo").on("click", function() { 
 
     if ($(this).index() == $(".photo").length - 1 && animation == false) 
 
     swipePhoto(this); 
 
    }); 
 
    } 
 

 
    function swipePhoto(elem) { 
 
    animation = true; 
 
    var photo = $(elem); 
 

 
    var animationsDone = 0; 
 

 
    function animationDone() { 
 
     animationsDone++; 
 
     if (animationsDone >= nbPhotos) { 
 
     $(".photo").attr("animating", false); 
 
     animation = false; 
 
     } 
 
    } 
 

 
    // Animation: photo swipe 
 
    photo.attr("animating", true); 
 
    photo.animate({ 
 
     top: "+=" + 30, 
 
     left: direction + "=" + 250 
 
     }, 
 
     500, 
 
     "easeInQuart", 
 
     function() { 
 
     // Photo goes behind all photos (DOM) 
 
     photo.detach(); 
 
     photo.prependTo(gallery); 
 

 
     var color = 255 - 4 * 10; 
 
     var bgColor = "rgba(" + color + "," + color + "," + color + ", 1)"; 
 

 
     // Animation of the photo going behind 
 
     photo 
 
      .animate({ 
 
       top: (nbPhotos - 1) * -6 + "px", 
 
       left: (nbPhotos - 1) * 4.5 + "px", 
 
       width: 100 - (nbPhotos - 1) * 5 + "%" 
 
      }, 
 
      900, 
 
      "easeOutQuart", 
 
      animationDone 
 
     ) 
 
      .css("background", bgColor); 
 
     } 
 
    ); 
 

 
    // Update animation direction 
 
    if (direction == "+") direction = "-"; 
 
    else direction = "+"; 
 

 
    // Animation : each photo move to his correct position 
 
    var j = 0; 
 
    for (var i = nbPhotos - 1; i >= 0; i--) { 
 
     var color = 225 + i * 12; 
 
     var bgColor = "rgba(" + color + "," + color + "," + color + ", 1)"; 
 
     if ($(".photo:eq(" + i + ")").attr("animating") !== "true") { 
 
     $(".photo:eq(" + i + ")") 
 
      .delay((nbPhotos - i + 1) * 150) 
 
      .animate({ 
 
       top: j * -6 + "px", 
 
       left: j * 4.5 + "px", 
 
       width: 100 - j * 5 + "%" 
 
      }, 
 
      500, 
 
      "easeOutBack", 
 
      animationDone 
 
     ) 
 
      .css("background", bgColor); 
 
     j++; 
 
     } 
 
    } 
 
    } 
 

 
    init(); 
 
});
@import url("https://fonts.googleapis.com/css?family=Karla"); 
 
body { 
 
    width: 100%; 
 
    height: 100vh; 
 
    margin: 0; 
 
    padding: 0; 
 
    color: #F0E5ED; 
 
    font-family: 'Karla', sans-serif; 
 
    text-shadow: 0 3px 30px rgba(0, 0, 0, 0.2); 
 
    text-align: center; 
 
    background: #9cafbc; 
 
} 
 

 
.container { 
 
    height: 100%; 
 
    width: 100%; 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: center; 
 
    align-items: center; 
 
} 
 

 
.heading, 
 
#gallery { 
 
    justify-content: center; 
 
    align-content: center; 
 
    width: 200px; 
 
} 
 

 
.heading { 
 
    margin-bottom: 30px; 
 
} 
 

 
.heading h1 { 
 
    margin: 0 auto 5px; 
 
    letter-spacing: -2px; 
 
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.heading span { 
 
    font-size: .65em; 
 
    font-weight: 900; 
 
    letter-spacing: .1rem; 
 
    text-transform: uppercase; 
 
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 
 
} 
 

 
#gallery { 
 
    position: relative; 
 
    display: inline-block; 
 
    margin: 30px 20px 0 0; 
 
    height: 200px; 
 
} 
 

 
#gallery .photo { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    width: 200px; 
 
    height: 200px; 
 
    padding: 10px; 
 
    background: linear-gradient(to bottom, #FFFFFF, #CFCFCF, #FFFFFF); 
 
    border-radius: 2px; 
 
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6); 
 
} 
 

 
#gallery .photo:last-child { 
 
    cursor: pointer; 
 
} 
 

 
#gallery .photo .captionContainer { 
 
    position: absolute; 
 
    margin: 0 auto; 
 
    padding: 4px; 
 
    bottom: 9px; 
 
    text-align: center; 
 
    background: black; 
 
    opacity: 0.5; 
 
    display: block; 
 
} 
 

 
#gallery .photo .imgContainer { 
 
    height: 200px; 
 
    border: 1px solid rgba(0, 0, 0, 0.3); 
 
    overflow: hidden; 
 
} 
 

 
#gallery .photo .imgContainer img { 
 
    max-width: 100%; 
 
    height: auto; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> 
 

 
<link href='https://fonts.googleapis.com/css?family=Handlee' rel='stylesheet' type='text/css'> 
 

 
<div class="container"> 
 
    <div class="heading"> 
 
    <h1>Gallery concept</h1> 
 
    <span>Click on the first image</span> 
 
    </div> 
 
    <div id="gallery"></div> 
 
</div>

+0

あなたを助けるために喜んで。あなたの問題を解決するのに役立つなら、それを正解とマークすることができます。 – Thusitha

+0

ありがとうございました.. 実際には、タイトル(キャプション)を独立したものにしたいと思いました。 イメージタグから独立したdivになるように..(その下に) –

関連する問題