[jQuery]スライド-自動実行:setInterval、clearInterval
setInterval
スライド画像を一定時間間隔で自動的にスキップしたい場合や、ダイナミックアニメーションを実装したい場合に、定期的にコールバック関数を実行する関数がsetIntervalです.
setInterval(function(){},시간간격);
clearInterval
現在進行中の関数の進行を停止します.
clearInterval(함수명);
<script>
$(function(){
let intervalID = "";
$('.start').on('click',function(){
clearInterval(intervalID);
//기존 인터벌 중지 : 버튼 누를때마다 함수가 실행되어 intervalID 값이 올라가기 때문에 미리 적어놓을 것.
intervalID = setInterval(function(){
$('.box').stop().animate({left:700}).animate({left:0});
},2000); //2초 간격으로 함수 실행
});
$('.stop').on('click',function(){
clearInterval(intervalID);
});
});
</script>
上記の関数を実行するには、ボックスの位置をposition:absoluteと指定する必要があります.スライドバナー[インジケータ+前、次のボタン+自動起動]
<script>
$(function(){
const $indicator = $('.slides>.slides-pagination>li>a');
const $container = $('.slides>.slides-container');
const $btnNext = $('.next');
const $btnPrev = $('.prev');
let nowIdx = 0;
//활성화,컨테이너이동 함수 선언!!
function moveFn(){
//활성화표시 on
$indicator.eq(nowIdx).parent().addClass('on').siblings().removeClass('on');
//컨테이너 이동
$container.stop().animate({left:-1180 * nowIdx},400,"easeInOutCubic",function(){console.log("슬라이드 이동 완료"); });
}
$indicator.on('click',function(evt){
nowIdx = $indicator.index(this);
moveFn();
evt.preventDefault();
});
//indicator를 눌렀을 때는 해당 a에 클래스를 옮겨주면 되고,
//이전,다음 버튼은 indicator식을 이용해 index를 증감시켜주면 된다.
$btnNext.on('click',function(evt){
if(nowIdx<=3){
nowIdx++;
}else{
nowIdx=0;
}
moveFn();
evt.preventDefault();
});
$btnPrev.on('click',function(evt){
if(nowIdx>=1){ //1보다 같거나 크다 = 1~4
nowIdx--;
}else{ //0
nowIdx=4;
}
moveFn();
evt.preventDefault();
});
//슬라이드 자동실행 = 시간간격 설정
interverID = setInterval(function(){
if(nowIdx<=3){
nowIdx++;
}else{
nowIdx=0;
}
moveFn();
},2000); //2초간격으로 슬라이드 이동
});
</script>
Reference
この問題について([jQuery]スライド-自動実行:setInterval、clearInterval), 我々は、より多くの情報をここで見つけました https://velog.io/@roong-ra/JavaScript-16.-setInterval-clearIntervalテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol