Как я могу повернуть фотографии на моем сайте? - PullRequest
0 голосов
/ 07 июля 2011

Существует ли стандартный код, который можно использовать для поворота изображений на моем веб-сайте HTML?

Ответы [ 3 ]

3 голосов
/ 07 июля 2011

CSS3 имеет стиль transform, который позволяет вращать любой элемент HTML.Вы бы использовали его так:

.myelement {
    transform:rotate(45deg);
}

Это должно работать в последних версиях большинства браузеров (Firefox 5, Chrome 13, IE9 и т. Д.).Однако в старых браузерах могут возникнуть проблемы.

В некоторых старых браузерах требуются префиксы поставщиков, поэтому вам понадобятся -moz-transform и -webkit-transform и т. Д.

Старые версии IE не поддерживаютстиль transform вообще, но у них есть атрибут filter, который можно использовать вместо него.К сожалению, синтаксис фильтра IE для ротации довольно сложен.Вы должны указать матричное преобразование со значениями в радианах, а не в градусах, чтобы оно могло быть немного неясным.

Для поворота на 45 градусов вы должны использовать следующий код:

.myelement {
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=-0.70710678, M21=0.70710678, M22=0.70710678,sizingMethod='auto expand')";
  filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=-0.70710678, M21=0.70710678, M22=0.70710678,sizingMethod='auto expand');
}

Вы заметите, что IE6 и IE7 требуют стиля filter, тогда как IE8 требует -ms-filter (с немного отличающимся синтаксисом).

Вместо того, чтобы объяснять это здесь, я укажу вам настраница, где это объясняется подробно: http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/

Последнее замечание по поводу стиля filter: синтаксис IE6 / 7 является недопустимым CSS (из-за двоеточия после progid, среди прочеговещи).Я видел, что на самом деле другие браузеры (особенно Firefox 3.6) не могут анализировать всю таблицу стилей.По этой причине я рекомендую использовать его в отдельной специфической для IE таблице стилей, которую вы можете полностью исключить из других браузеров.

Если вы хотите сделать это через Javascript, я бы рекомендовал использовать плагин JQuery.избавит от сложности написания отдельного кода для всех браузеров.Смотрите здесь для получения дополнительной информации: http://plugins.jquery.com/plugin-tags/rotate

Надеюсь, что помогает.

2 голосов
/ 07 июля 2011

Вы поворачиваете изображения либо на стороне клиента (в браузере), либо на стороне сервера (на своем сервере, а затем повторно отправляете изображение в браузер).

Для поворота в браузере см.Ответ Спудли.

Обычный способ на сервере - использовать imagemagick Большинство веб-языков / фреймворков включают привязки, позволяющие легко использовать магию изображений.Например, версия PHP .

Список для многих различных языков.

Вы можете использовать методы Ajax для поворота изображения для пользователя безтребуется обновление страницы.

0 голосов
/ 07 июля 2011

Я считаю, что единственная поддержка вращающихся элементов HTML обеспечивается преобразованиями CSS.

Они были изобретены командой WebKit (я думаю):

Теперь есть поддержка и в других браузерах:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...