Недавно я начал новый проект, который представляет собой флипбук CSS3/jQuery (нажмите, чтобы перевернуть или нажмите &, перетащите правую страницу).Улучшение производительности анимации перетаскивания jQuery
Посмотреть live here или play with the fiddle
ВОПРОС:
Как я могу улучшить скорость при перемещении страницы?
кажется OK в Chrome и Safari, но это медленнее/'steppy' в Firefox и действительно ужасен в Opera (испытан в последних версиях на Mac OS X Snow Leopard)
BTW .. Я m все еще очищает код/я попытался удалить вращение, но он ничего не меняет.
У меня было несколько тестеров, которые жаловались на производительность на Chrome/Mac тоже (это, кажется, «OK» для меня) ..
Любая помощь/критика/намек ценится.
Вот код, который перемещает страницы (см скрипку для всего кода)
function startMove() {
$('#flipwrap.movable').on('mousemove', function(e) {
e.preventDefault();
thisX = parseFloat((e.pageX - offsetX - 190), 10);
thisY = parseFloat((e.pageY - offsetY - 270), 10);
positionX = parseFloat((((thisX - 55) * -1) + 310), 10);
positionY = parseFloat(((thisY + 100)/10), 10);
rotateZ = parseFloat((((positionX - 350) * positionY)/900).toFixed(2) * -1, 10);
if ($('.page.flipit').hasClass('movable')) {
$('.page.flipit').stop(true, true);
$('.page.removeit').stop(true, true);
$('.page.flipit').removeClass('css-animation').css({
width: 116 - thisX/2.1,
height: 345 - thisX/8,
top: -13 + thisX/16,
left: thisX + 155
});
$('.page.flipit').css('-webkit-transform', 'rotate(' + rotateZ + 'deg) ').css('-o-transform', 'rotate(' + rotateZ + 'deg) ').css('-moz-transform', 'rotate(' + rotateZ + 'deg) ');
console.log(' pX = ' + positionX + ' pY = ' + positionY + ' rZ = ' + rotateZ + ' tX = ' + thisX + ' tY = ' + thisY);
$('.page.removeit').css({
width: 40 + thisX/1.6
});
}
});
}
должны сказать, что это довольно неуклюжая для меня в Chrome тоже (последняя версия, Win7). Кроме того, это выглядит хорошо. –
Возможно, вы можете сравнить это с оригиналом http://jsfiddle.net/pixelass/PXZwf/3/, он использует перевод для позиционирования .. (анимация на mouseup ... и т. Д. В этом примере полностью отключена) .. это как раз о гладкости анимации завитой/перетаскиваемой части при перетаскивании – pixelass