Bootstrap カルーセルは奇妙な獣です。無限ループを防ぐために $next を微調整しようとしましたが、最終的にはそれを壊すか、最後に到達したときにスライドが逆戻りするのを防ぎます。
カルーセルがリスト内でスライドするだけで、無限にループしないようにしたいと思います。
どんな助けでも大歓迎です。
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
if ($next.hasClass('active')) return
if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
this.$element.one($.support.transition.end, function() {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
setTimeout(function() {
that.$element.trigger('slid')
}, 0)
})
} else {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
this.$element.trigger('slid')
}
更新: これは「自動再生」とは関係ありません。具体的には、左右のボタンを手動で押すことを指しています。