다음 코드는 막대에서 여러 항목을 슬라이딩하기위한 함수를 제어합니다. 가능한 경우 브라우저를 지원할 때 CSS3을 사용하는 JQuery animate enhanced라는 플러그인을 사용하고 있습니다.JQuery 애니메이션이 웹킷을 통해 향상되고 일치하지 않음
CSS3이 없으면 기능이 완벽하게 작동합니다. 그러나 일단 모든 탭이 선택되면 CSS3를 사용하면 첫 번째 탭이 더 이상 협조되지 않습니다.
바이올린은 : http://jsfiddle.net/cqBZz/3/
코드 :
$(document).ready(function() {
var bounceholder = 0;
var delayact = 0;
$('.bouncetabs a').click(function() {
$('.bouncetabs a').removeClass('active');
$(this).addClass('active');
if ($(this).index('.bouncetabs a') < bounceholder) {
var backwards = 1
} else {
var backwards = 0
}
bounceholder = $(this).index('.bouncetabs a');
var bounceoffset = 0;
if ($('.bounceholder ul:eq(' + bounceholder + ') li').length == 6) {
var bounceoffset = 0;
} else if ($('.bounceholder ul:eq(' + bounceholder + ') li').length == 5) {
var bounceoffset = 72;
} else if ($('.bounceholder ul:eq(' + bounceholder + ') li').length == 4) {
var bounceoffset = 144;
} else if ($('.bounceholder ul:eq(' + bounceholder + ') li').length == 3) {
var bounceoffset = 216;
} else if ($('.bounceholder ul:eq(' + bounceholder + ') li').length == 2) {
var bounceoffset = 288;
}
$('.bounceholder ul:eq(' + bounceholder + ')').prevAll().each(function() {
$('li', this).each(function() {
$(this).delay(150).animate({
left: -200,
top: 0,
leaveTransforms: true
}, {
duration: 400,
queue: true
});
});
});
$('.bounceholder ul:eq(' + bounceholder + ')').nextAll().each(function() {
$('li', this).each(function() {
$(this).delay(150).animate({
left: +1000,
top: 0,
leaveTransforms: true
}, 600);
});
});
if (backwards == 1) {
bounceoffset = 800 - bounceoffset;
$($('.bounceholder ul:eq(' + bounceholder + ') li').get().reverse()).each(function (i) {
delay = (i + 1) * 100;
$(this).delay(delay).animate({
left: +bounceoffset,
top: 0,
opacity: 0.6,
leaveTransforms: true
}, {
duration: 400,
queue: true
});
bounceoffset -= 160;
});
} else {
$('.bounceholder ul:eq(' + bounceholder + ') li').each(function (i) {
delay = (i + 1) * (100 * delayact);
$(this).delay(delay).animate({
left: +bounceoffset,
top: 0,
opacity: 0.6,
leaveTransforms: true
}, {
duration: 400,
queue: true
});
bounceoffset += 160;
});
}
delayact = 1;
return false
});
});
'leaveTransforms'를 false로 설정하지 않는 이유는 무엇입니까? 문제는 css3 전환 Jquery.animate 플러그인의 어딘가에있을 가능성이 큽니다 ... 아마 해당 코드를 살펴 보는 것이 도움이 될 것입니다. – donutdan4114
@ donutdan4114 변경된 기능을 변경하려고 시도했지만 더 많은 결과를 얻었습니다 –