Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2014, 11:01
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

Изменение CSS параметра transform
Всем доброго времени суток, возникла нестандартная задачка, облазил весь инет, не нашел того что ищу...

<div class="obj_1 zx-1" style="transform: translateY(400px) translateX(350px) translateZ(-120px) rotateX(0deg) rotateY(-5deg);"></div>


Собственно нужно изменить только один параметр ( rotateX ) остальные нужно оставить без изменений

-----------------------

Поясню сложность:

если напрямую указать 1 параметр, то остальные обнуляются, а это не есть хорошо...

если делать так:
var obj_1 = $( ".obj_1" ).css("WebkitTransform");

то выдает вот такую штуку:
matrix3d(0.9961946980917455, 0, 0.08715574274765817, 0, 0, 1, 0, 0, -0.08715574274765817, 0, 0.9961946980917455, 0, 350, 400, -120, 1)

Собственно придется перегружать код вычислением градусов, я уж не говорю о том, что придется где-то искать учебник по геометрии =)

-----------------------

Собственно, подскажите как быть...
Заранее спасибо =)

Последний раз редактировалось FreeZa, 10.02.2014 в 11:17.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2014, 11:42
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от FreeZa
если делать так:
var obj_1 = $( ".obj_1" ).css("WebkitTransform");
А так
var obj_1 = $( ".obj_1" ).css("WebkitTransform-rotateX");

Даст что-то?
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2014, 11:51
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

Нет((( свойства "WebkitTransform-rotateX", есть только "WebkitTransform"
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2014, 11:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

FreeZa,
записываем матрицу с нужными параметрами заранее потом подставляем нужное значение
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2014, 11:55
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

записываем матрицу с нужными параметрами заранее
Нет возможности так сделать, параметры меняются в процессе
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2014, 11:58
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

Есть конечно мысль, узнать все параметры трансформа не в матрице, а в а сразу градусах, и просто подставить переменную...вот только как это сделать не понятно...
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2014, 12:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от FreeZa
Собственно нужно изменить только один параметр ( rotateX ) остальные нужно оставить без изменений
Боюсь придется изначально задавать значения через javascript. Пример:

var transforms = {
    translateY: {value: 400, unit: 'px'},
    translateX: {value: 350, unit: 'px'},
    translateZ: {value: -120, unit: 'px'},
    rotateX: {value: 0, unit: 'deg'},
    rotateY: {value: -5, unit: 'deg'}
};

Object.defineProperty(transforms, 'stringify', {
    enumerable: false,
    value: function() {
        var functions = [];
        for (var key in this) {
            var value = this[key];
            functions.push(key + '(' + value.value + value.unit + ')');
        }
        return functions.join(' ');
    }
});

transforms.rotateX.value += 10;
alert(transforms.stringify());
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2014, 13:32
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

danik.js,
Спасибо! придется всеже делать через одно место, хотя нашел я вариант один...
Добавил дочерний элемент, и его уже кручу верчу, но проблема в том, что объект все равно получится крутить только по одной оси =(
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2014, 13:33
Новичок на форуме
Отправить личное сообщение для FreeZa Посмотреть профиль Найти все сообщения от FreeZa
 
Регистрация: 10.02.2014
Сообщений: 9

Мндя...я то думал CSS изометрический движок будет сложно написать, оказалось все просто, вот только косяк с реал-таймом получается =(
Ответить с цитированием
  #10 (permalink)  
Старый 10.02.2014, 13:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вобще, css-функции - это какой-то тупняк, так как к ним нет доступа из JS. Это же гон переводить объекты в строку, чтобы потом браузер снова распарсил строку в объекты.
Иначе работал filters в IE - там был доступ как из css, так и из js к нормальной модели.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ещё раз изменение css файла посредством javascript JSN Events/DOM/Window 8 27.03.2020 10:42
Изменение transform Аленький цветочек Общие вопросы Javascript 14 10.01.2014 01:34
Изменение css свойства Rumis jQuery 2 21.05.2013 11:55
Изменение имиджа по таймеру с помощью CSS и JavaScript Aimless Общие вопросы Javascript 10 15.08.2008 18:09
Изменение параметра "ALT"("TITLE") тега IMG посредством DOM Гость Элементы интерфейса 3 21.02.2008 10:02