0
애니메이션과 같은 이미지 슬라이더가 있습니다. 차이점은 하나의 슬라이드에는 몇 가지 요소가 있는데, 제 경우에는 장면의 왼쪽 또는 오른쪽에서 오는 4 개의 그림입니다.모든 애니메이션이 멈추고 다시 활성화 될 때까지 링크를 비활성화하십시오.
질문은 100 % 애니메이션이 끝날 때까지 애니메이션 기능을 트리거하는 링크를 비활성화 한 다음 다시 활성화하는 방법입니다.
다음내 코드는 ...
$(document).ready(function() {
//
$('.package_box_menu li').children().click(function(){
$(this).showProducts($(this).attr("id"))
});
jQuery.fn.showProducts = function (clickedSeason) {
var nextToShowSide = $('.'+[clickedSeason]+'_img1').attr("rel");
var active = $('img[ rel |= active]').attr('season');
if (nextToShowSide == 'right') {var whereTo = '-1000px'; var currentToHideSide ="left" };
if (nextToShowSide == 'left') {var whereTo = '3000px'; var currentToHideSide ="right" };
show();
hide(active, whereTo, currentToHideSide);
function show(){
var allToShow = ($('img[ season |= '+[clickedSeason]+']').get()).length;
for (var i = 1; i<= allToShow ; i++){
var delay = $('.'+[clickedSeason]+'_img'+[i]).attr('delay');
var position = $('.'+[clickedSeason]+'_img'+[i]).attr('left');
$('.'+[clickedSeason]+'_img'+[i]).stop().delay(delay).animate({'margin-left': position }, 1000, 'easeOutExpo').attr('rel','active');
}
};
function hide(active, whereTo, currentToHideSide){
var all = ($('img[ rel |= active]').get()).length;
for (var i = 1; i<= all ; i++){
if ($('.'+[active]+'_img'+[i]).attr('rel') == 'active') {
$('.'+[active]+'_img'+[i]).stop().delay([i]+'00').animate({'margin-left': whereTo }, 1000, 'easeInExpo').attr('rel', currentToHideSide);
}
}
};
};
jQuery().showProducts('spring');
});
일을 언급 변경 작업있어'클래스가 끝나는 IMG는 'IMG [클래스 $ = img1로] : 나는 항상이 방법을 잊어 버리고 지루한 뮤텍스 변수를 사용하여 애니메이션 콜백으로 재설정하십시오. – fcalderan
@AbstractChaos 만약 스크립트를 더 잘 보면 버튼 (링크)이 움직이는 것이 아니라는 것을 알 수 있습니다. ... – NoBine
@ NoBine 그래서 나는 아래의 주석에서 슬라이드로 대체 될 수있는 코드 덩어리를 말했습니다. 나는 명백하게 보이지 않을 것입니다. – AbstractChaos