スタック オーバーフローのおかげで、このスクリプトをうまく機能させることができました。
var $count = 4;
var $row = 10;
function across() {
var $active = $('#slideshow .active .current');
var $next = $active.next();
$next.addClass('current');
$active.animate({ left: '+=100px' }, 800, 'swing').removeClass('current');
$row += 10;
$count--;
if ($count == 0) {
$count = 4;
$row = 10;
down();
$($active).stop();
$('#slideshow .active .bed').animate({ left: '-=100px' }, 1);
$('.div .bed:first-child').addClass('current');
}
}
function down() {
var $active = $('#slideshow .active');
var $next = $active.next();
$next.fadeIn("slow").addClass('active');
$active.fadeOut("slow").removeClass('active');
if (!$next.length) {
$("#slideshow .div:first-child").fadeIn("slow").addClass('active');
}
}
$(function() {
setInterval(across, 1000);
});
しかし問題がある。
緑色の親正方形では、オレンジ、紫、灰色の div が右にスライドしますが、他の正方形では、div はほとんど左にスライドしません。
これは、スクリプトの 16 行目の down() 関数と関係があります。それが取り除かれると、すべての div が同じ量でスライドします。ただし、前に呼び出す必要があるため、down() を除外することはできません。
$('#slideshow .active .bed').animate({ left: '-=100px' }, 1);
$('.div .bed:first-child').addClass('current');
18 行目と 19 行目。これは、div が元の位置に戻るのをユーザーが見ないようにするためです。明確にするために、オレンジ、パープル、グレーの div を同じ量だけスライドさせる必要があります。また、div が元の位置に戻るのをユーザーが確認する前に、親 div をフェードアウトさせる必要があります。
御時間ありがとうございます!