2013-05-02 2 views
1

Так что у меня есть код, который должен быть добавлен при нажатии кнопки «+10» поворот на 10 градусов по объекту при нажатии кнопки «+30» 30-градусное вращение на объект, причем положение 90 градусов должно быть максимально доступным. Теперь он рекламирует только один, и я не знаю, как заставить его двигаться настолько сильно, насколько я хочу, чтобы он двигался.вращать объект onclick

http://jsfiddle.net/9Xghf/

var rotateObject = document.getElementById("object"); 
var objectRotation = 0; 

var add10 = document.getElementById("add10"); 
var add30 = document.getElementById("add30"); 

add10.onclick = function(){ 
    rotate(0, 10); 
} 
add30.onclick = function(){ 
    rotate(0, 30); 
} 
function rotate(index, limit){ 
    if(objectRotation < 90 && index <= limit){ 
     index++; 
     objectRotation++; 
     rotateObject.style.transform="rotate(" + objectRotation + "deg)"; 
     rotateObject.style.WebkitTransform="rotate(" + objectRotation + "deg)"; 
     rotateObject.style.msTransform="rotate(" + objectRotation + "deg)"; 
     setTimeout(rotate, 50); 
    }else{ 
    // 90 degree is the max limit for this object 
    } 
} 

ответ

2

Заменить таймер следующим образом:

setTimeout(function(){ 
     rotate(index,limit); 
    }, 50); 

нб: это не будет работать для всех браузеров

+0

вы :) это работает, какие-либо идеи, как мог я добиться его полной поддержки браузера? – Driglou

+0

Я бы рекомендовал использовать '1000/60' как время ожидания, а не' 50', чтобы добиться приятного и плавного 60 кадров в секунду. – howderek

+0

Взгляните сюда, это может привести к некоторым признакам: http://samuli.hakoniemi.net/cross-browser-rotation-transformation-with-css/ – nicolas

Смежные вопросы