Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2018, 09:24
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Добавление второго стиля к элементу
У меня есть элемент, я присвоил к нему один стиль, после чего мне нужно добавить ещё один.
for (var i = 0; i < DUCK1_COUNT; i++) {
        $(".menu").after("<img src='img/004-duck.png' class='utka plav'>");
        $(".utka").addClass('Krykvi1'+i);
        $('.Krykvi1'+i).css('transform', 'translate(' + getRandomIn(0, 1500) + 'px, ' + getRandomIn(0, 800) + 'px)');
        if (getRandomIn(3, 6) < 5) {
            $('.Krykvi1'+i).addClass('duck-flip');
            }     
  }


Где начинается оператор if, там присваивается новый класс. Но после присвоения этого НОВОГО класса свойства предыдущего стираются, то есть transform translate убирается и на его место встают свойства класса duck-flip.
Как добавить класс или стиль элементу второй раз?
Ответить с цитированием
  #2 (permalink)  
Старый 14.04.2018, 09:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Retro_1477,
а так?
for (var i = 0; i < DUCK1_COUNT; i++) {
        var DUCK = $("<img src='img/004-duck.png' class='utka plav'>")
        .insertAfter(".menu")
        .addClass('Krykvi1'+i)
        .css('transform', 'translate(' + getRandomIn(0, 1500) + 'px, ' + getRandomIn(0, 800) + 'px)');
        if (getRandomIn(3, 6) < 5) {
            DUCK.addClass('duck-flip');
            }
  }
Ответить с цитированием
  #3 (permalink)  
Старый 14.04.2018, 10:08
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Хорошая попытка, но результат тот же.
Он добавляет класс, но почему-то transform translate блокирует transform scaleX(который в классе duck-flip). Если я убираю translate то scaleX работает.
Ответить с цитированием
  #4 (permalink)  
Старый 14.04.2018, 10:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Retro_1477
но почему-то transform translate блокирует transform scaleX(который в классе duck-flip).
так устроено, что style имеет приоритет над class, это азбука!!!
Ответить с цитированием
  #5 (permalink)  
Старый 14.04.2018, 10:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Retro_1477,
думал у вас проблема с размножением классов
<img src="img/004-duck.png" class="utka plav Krykvi10 duck-flip Krykvi11 Krykvi12 Krykvi13 Krykvi14" style="transform: translate(4px, 4px);">

код выше убирает это.
Ответить с цитированием
  #6 (permalink)  
Старый 14.04.2018, 10:20
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Я избавился от размножения классов во таким образом
for (var i = 0; i < DUCK1_COUNT; i++) {
        $(".menu").after("<img src='img/004-duck.png' class='utka plav'>");
        $(".utka").addClass('Krykvi1'+i);
        $('.Krykvi1'+i).css('transform', 'translate(' + getRandomIn(0, 1500) + 'px, ' + getRandomIn(0, 800) + 'px)');
        if (getRandomIn(3, 6) < 5) {
            $('.Krykvi1'+i).addClass('duck-flip');
            }
        $( "img" ).removeClass( "utka");
        
  }


Так что с этим всё нормально))
Ответить с цитированием
  #7 (permalink)  
Старый 14.04.2018, 10:21
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

И как поступить?
Ответить с цитированием
  #8 (permalink)  
Старый 14.04.2018, 10:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Retro_1477,
как-то так
for (var i = 0; i < DUCK1_COUNT; i++) {
        var DUCK = $("<img src='img/004-duck.png' class='utka plav'>").insertAfter(".menu")
        .addClass('Krykvi1'+i);
        var transform = 'translate(' + getRandomIn(0, 1500) + 'px, ' + getRandomIn(0, 800) + 'px)'
         if (getRandomIn(3, 6) < 5) {
           transform = "?????"
            }
        DUCK.css('transform', transform);
  }

Последний раз редактировалось рони, 14.04.2018 в 10:31.
Ответить с цитированием
  #9 (permalink)  
Старый 14.04.2018, 10:50
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Крч, смотри, у меня происходит спаун уток, в рандомной местах и некоторые из них должны быть повёрнуты на scaleX(-1) воооот
Ответить с цитированием
  #10 (permalink)  
Старый 14.04.2018, 10:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Retro_1477,
и в чём проблема?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При добавление класса к элементу не добавляется его стиль! AciDWarrioR (X)HTML/CSS 6 23.11.2015 17:13
Клик по одному элементу добавление класса у второго элемента, кликаем по третьему эле aleksandr8i Общие вопросы Javascript 1 24.09.2015 11:25
Добавление элемента добавляемому элементу. Deoman Events/DOM/Window 6 08.01.2015 18:37
Добавление класса элементу при прокрутке к этому элементу patriot94 Общие вопросы Javascript 5 18.03.2014 12:41
добавление атрибута HTML элементу с помощью JavaScript brainload Events/DOM/Window 4 23.12.2012 11:18