《jQuery》画像をランダムでフェードインさせる
公開日:2024年12月04日 最終更新日:2024年12月4日
画像をopacityを使ってフェードインさせています。
DEMO
HTML
<div class="photo">
<div><img src="https://placehold.jp/000000/ffffff/300x300.png?text=1"></div>
<div><img src="https://placehold.jp/222222/ffffff/300x300.png?text=2"></div>
<div><img src="https://placehold.jp/444444/ffffff/300x300.png?text=3"></div>
<div><img src="https://placehold.jp/666666/ffffff/300x300.png?text=4"></div>
<div><img src="https://placehold.jp/888888/ffffff/300x300.png?text=5"></div>
<div><img src="https://placehold.jp/aaaaaa/ffffff/300x300.png?text=6"></div>
<div><img src="https://placehold.jp/bbbbbb/ffffff/300x300.png?text=7"></div>
<div><img src="https://placehold.jp/cccccc/ffffff/300x300.png?text=8"></div>
</div>
CSS
見やすいように4枚ずつ並ぶようにしています。
好きにアレンジしてください。
.photo {
display: flex;
flex-wrap: wrap;
}
.photo > div {
width: 25%;
}
.photo img {
vertical-align: middle;
width: 100%;
}
JS
JSの記述の前にjQueryの読み込みが必要です。
jQuery(function ($) {
var $images = $('.photo img');
$images.css('opacity', 0);
// 画像をランダムにフェードインさせる順番を生成
var order = [];
$images.each(function (index) {
order.push(index);
});
// ランダムに並べ替える
order = order.sort(function () {
return Math.random() - 0.5;
});
// 順番にフェードインさせる
$.each(order, function (index, value) {
$images.eq(value).delay(500 * index).animate({ opacity: 1 }, 1000);
});
});