Владислав, ну я принцип показал. А для многократного вращения нужно добавлять к существующему значению новое. Цикла точно не нужно.
rotateX и др. прекрасно работают в актуальных броузерах, как видно в примере.
Андрей, я тоже люблю олдскул. Но в данном случае есть длинный минус - как навесить второй обработчик при необходимости?
Нет, можно написать функцию, в неё складывать обработчики, и вызывать описанным методом - но ...
НЕ нравится.
Даниил Сухих, да потому, что Гугл не интерпретирует кнопку без типа в форме, как submit.
А вообще это правильная практика - отключать событие по умолчанию, если навешиваешь своё.
Дмитрий Кинаш, думаю, да. Я решил более радикально поступить - удалить все ноды, в которых выводится работа скриптов. Следовательно, скрипты даже работая, будут лишь выбрасывать исключения.
Anton Mashletov, да знаю, но у меня с инглишем не до такой степени дружба, чтобы читать бегло. А на медленное чтение сейчас времени нет.
Смысл понял, но:
1. Фигурные скобки расставляю так же, как делаю в JS - это уже, скорее, дело привычки. Хотя согласен, в РНР это не очень принято.
2. Название функции нужно делать кэмелкейсом?
rotateX и др. прекрасно работают в актуальных броузерах, как видно в примере.