Як повернути картинку навколо свого центру за допомогою javascript?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Взагалі то я вже трохи наклав коду, і картинка з бджолою може рухатися туди сюди, але не повертатися навколо свого центру (якби хто написав код для цього. Та ще й з коментарями.). Власне сам код:

        window.onload = function (){
            var bee = document.getElementById('bee');

            var lef;
            var randomDirection;

            bee.style.left = '0px';
            bee.style.right = '0px';
            bee.style.top = '0px';
            bee.style.visibility = 'visible';
            window.setInterval(function(){
                //Картинка с определленой периодичностью появляется на странице
                if(bee.style.visibility == 'visible'){
                    bee.style.visibility = 'hidden';
                } else {
                    var positionX = Math.floor(Math.random() * parseInt((window.innerWidth) - 20));//эти 2-к строчки нужны для того чтобы картинка не
                    //выходила за пределы страницы
                    var positionY = Math.floor(Math.random() * parseInt((window.innerHeight) - 20));
                    bee.style.left = positionX + 'px';//случайное число определяющее позицию по X
                    bee.style.top = positionY + 'px';//то же, но для  Y
                    bee.style.visibility = 'visible';

                    clearInterval(lef);
                    randomDirection = Math.floor(Math.random() * (3 - 0 + 1)) + 0;
                    lef = window.setInterval(function (){
                        switch (randomDirection){
                            case 2:
                                bee.style.top = parseInt(bee.style.top) + 2 + 'px';
                                if(parseInt(bee.style.top) >= parseInt(window.innerHeight)){
                                    bee.style.top = '0px';
                                    clearInterval(lef);
                                }
                                break;
                            case 0:
                                bee.style.left = parseInt(bee.style.left) + 2 + 'px';
                                if(parseInt(bee.style.left) >= parseInt(window.innerWidth)){
                                    bee.style.left = '0px';
                                    clearInterval(lef);
                                }
                                break;
                            case 1:
                                bee.style.left = parseInt(bee.style.left) - 2 + 'px';
                                if(parseInt(bee.style.left) >= parseInt(window.innerWidth)){
                                    bee.style.left = '0px';
                                    clearInterval(lef);
                                }
                                break;
                            case 3:
                                bee.style.top = parseInt(bee.style.top) - 2 + 'px';
                                if(parseInt(bee.style.top) >= parseInt(window.innerHeight)){
                                    bee.style.top = '0px';
                                    clearInterval(lef);
                                }
                                break;
                            default:
                                alert(randomDirection);
                        }
                    }, 100, randomDirection);
                }
            },3000);
        }
    </script>
І більш загальне питання: як зімітувати політ бджоли? А то, навіть якщо картинка буде повертатися, то бджола, скоріш за все, буде літати не дуже реалістично.
👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если мне не изменяет зрительная память, пчела летает с фиксированным углом тангажа, т.е. поворачивать картинку совершенно необязательно. Для реалистичности имеет смысл сделать небольшие «проныривания». Ну типа чего-то такого — awanport.ru/.../1/92443121.jpg, аккуратно перемещаемого по странице, должно вполне хватить для квазиреалистичности.

С использованием jQuery:

img.css(’transform: rotate(Ndeg)’); // N from 1 to 360
или
img.rotate(N);

Підписатись на коментарі