setIntervalを使用してループを実行する関数があります。関数empMoveは、マージントップを毎回-182pxずつ減らします。この中に別のifステートメントがあり、いつ終了する必要があるかを確認します。ここでは、clearIntervalを使用してループを停止し、margin-topをゼロに戻します。
問題は、停止しても再起動しないことです。
申し訳ありませんが、コード全体を貼り付けませんでしたが、それは巨大で、問題の焦点から外れてしまいます。
// if statements to move carousel up
$carouselNum = $('.carousella').length;
$loopNum = $($carouselNum * -182);
if($carouselNum > 1){
// function empMove, the '-=' allows the -margin-top to run every time. Without this it will set the margin-top to the same value every loop
var myLoop = setInterval(empMove, 2500);
function empMove() {
$('.emp-wrap').css('margin-top', '-=182');
console.log('loop start');
var marginTop = $('.emp-wrap').css('margin-top');
console.log(marginTop);
if(marginTop = $loopNum){
// do something
clearInterval(myLoop);
$('.emp-wrap').delay(2500).css('margin-top', '0');
console.log('loop stops');
};
};
}
else{
// do something
}