このアイデアをどこから始めればよいのかよくわかりません。以下の jQuery を使用して、ページの読み込みごとにランダムな画像を表示しています。別の div に表示される各画像に特定のキャプションを表示するように拡張したいと思います。
以下の関数は、image1.jpg、image2.jpg などの形式でランダムな image.jpg を出力します。各画像のキャプションの配列が必要だと考えていますが、配列を参照してキャプションを出力するにはどうすればよいですか?関数内の画像名?
<script>
(function($){
$.randomImage = {
defaults: {
path: 'headerimages/',
myImages: ['image1.jpg', 'image2.jpg','image3.jpg','image4.jpg','image5.jpg','image6.jpg' ]
}
}
$.fn.extend({
randomImage:function(config) {
var config = $.extend({}, $.randomImage.defaults, config);
return this.each(function() {
var imageNames = config.myImages;
var imageNamesSize = imageNames.length;
var randomNumber = Math.floor(Math.random()*imageNamesSize);
var displayImage = imageNames[randomNumber];
var fullPath = config.path + displayImage;
$(this).attr( { src: fullPath, alt: displayImage });
});
}
});
})(jQuery);
</script>
上記の関数の画像はhtmlで表示されます<img class="randomheader" src="" alt="image">
キャプションは別の div になります。つまり<div class="caption"></div>
、CSS for#caption
はおそらくdisplay:none
jQuery が読み込まれるまでです。
これはドキュメント準備機能です:
<script>
$(document).ready(function(){
$('.randomheader').randomImage();
});
</script>