За последние 24 часа нас посетили 20308 программистов и 1708 роботов. Сейчас ищут 1569 программистов ...

Вращение картинки

Тема в разделе "JavaScript и AJAX", создана пользователем Schokk, 9 апр 2015.

  1. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    Здравствуйте. Такая вот проблема. Нужно, что бы, после нажатия на картинку она все время переворачивалась на 90 градусов. я реализовал это так:
    Код (Text):
    1.  
    2. <sctipt>
    3. function rotate(id){
    4.                             document.getElementById(id).className = 'rotate';
    5.                         }
    6.                         </script>
    7.                         <style>
    8.                         .rotate{
    9.                         -webkit-transform: rotate(90deg);
    10.                           max-width: 141px;
    11.                           max-height: 95px;
    12.                           float: left;
    13.                           margin: 5px;
    14.  
    15.                         }
    16.                         </style>
    17. <img src='' class='image-preview' id=".$i." onclick='rotate(id)'/>
    Проблема в том, что это работает один раз. Я один раз нажимаю на картинку и она поворачивается на 90 градусов. Если буду нажимать еще то ничего не происходит.
    Помогите поправить. Что не так?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вы каждый раз вызываете поворот на 90 градусов в абсолютном значении. И удивляетесь, что "работает только один раз"?
    Каждое нажатие говорит картинке не "повернись еще на 90 градусов", а "повернись на 90 градусов вообще".
     
  3. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    что нужно изменить? подскажите пожалуйста.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Изменить свое понимание слова "реализовал", для начала. Реализовал бы сам, уже бы знал, что нужно менять.
    У тебя даже тег "<script>" написан с ошибкой. Странно, что вообще работало..

    Лови, самое простое, что на ум пришло, за 15 минут накиданное: https://jsfiddle.net/4vsv65ab/
     
  5. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    Большое спасибо. Очень помогли.
     
  6. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    или можно так
    JS
    Код (Text):
    1.  
    2. function rotate(obj, step, time){
    3.    
    4.     if(typeof(obj) != 'object') return false;
    5.    
    6.     time = time || 0.3;
    7.     step = step || 90;
    8.     obj.deg = (obj.deg + step) || step;
    9.    
    10.     obj.style['-webkit-transition'] =
    11.     obj.style['-o-transition'] =
    12.     obj.style['-moz-transition'] =
    13.     obj.style['-ms-transition'] = time + 's';
    14.    
    15.     obj.style['-webkit-transform'] =
    16.     obj.style['-o-transform'] =
    17.     obj.style['-moz-transform'] =
    18.     obj.style['-ms-transform'] = 'rotateZ(' + obj.deg + 'deg)';
    19.    
    20. }
    HTML
    Код (Text):
    1.  
    2. <img onclick="rotate(this, 90, 1)" src="http://php.ru/forum/download/file.php?avatar=41172_1377271764.png"/>
    Аватарка идеально подходит под скрипт :))