Ok, поэтому я предполагаю, что у вас есть глобальная переменная определена как value
Вы можете использовать следующий код для поворота на 90 градусов, если это то, что вы хотите:
var value = 0;
$('#rotate-btn').click(function (e) {
var element = $("#image_canv");
var startDegree = value;
var endDegree = value + 90;
value += 90;
$({ i:startDegree }).animate({ i: endDegree }, {
step: function(now,fx) {
element.css({transform : 'rotate('+ now + 'deg)' });
},
duration: 1000
});
});
И вот пример его работы: http://jsfiddle.net/hQHhf/4/
Если вам нужно повернуть на какой-то другой шаг, то код нужно будет немного изменить, чтобы соответствовать этим потребностям. Но в основном ваша переменная value
всегда должна быть такой же, как endDegree
, так что следующее вращение начнется в нужном месте для изображения.
Вот пример того, как использовать его, если вы хотите выполнять различные степени вращения, как положительные, так и отрицательные (для этого я изменил идентификатор rotate-btn на класс вместо этого и дал его собственный функция для вращения на любых градусов):
var value = 0;
$('.rotate-btn').click(function (e) {
doRotate($(this).val(), 1000);
});
function doRotate(degrees, delay) {
var element = $("#image_canv");
var startDegree = value;
var endDegree = value + parseInt(degrees);
value = value + parseInt(degrees);
$({ i:startDegree }).animate({ i: endDegree }, {
step: function(now,fx) {
element.css({transform : 'rotate('+ now + 'deg)' });
},
duration: delay
});
}
И вот пример: http://jsfiddle.net/hQHhf/6/
сделал также некоторые незначительные изменения к HTML, а также, как с помощью <button>
вместо <input>
послать соответствующее значение к doRotate
и некоторые другие незначительные изменения.
Надеюсь, это поможет вам разобраться в этом и применить его для ваших нужд. Кроме того, поскольку вы устанавливаете ширину 400 и высоту 300 на изображениях, в то время как хром не работает, но некоторые другие браузеры, такие как firefox, будут. Например, когда изображение вращается, размер вращается вместе с ним, потому что у вас нет равного размера по ширине и высоте вашего изображения, поэтому он не будет выглядеть так, как он вращается естественным образом во всех браузерах. Если вы дадите оба, ширину и высоту, того же размера у вас не будет этой проблемы.
Можете ли вы опубликовать свой код до сих пор и жить демо, чтобы воспроизвести проблему? – elclanrs
Вы можете увидеть пример того, как повернуть здесь: http://jsfiddle.net/hQHhf/2/ На самом деле вам даже не нужен пользовательский интерфейс jQuery для этого, но я просто отметил его с самого начала на всякий случай, но если вы удалите его, вы увидите, что он отлично работает с библиотекой jQuery. –
Почему бы не дать содержимому свой собственный div? Если вы сомневаетесь, создайте дополнительную пару сотен оберток. – bjb568