Если элемент переводит 3d addClass

как я могу написать скрипт, который делает это?

Если класс div «test» имеет свойство translate3d (0px, 100px, 0px), добавьте к нему «активный» класс, иначе удалите его.

Я пробовал что-то вроде этого, но это не правильно ...

setInterval(function(){
  if($('.test').css('transform') == 'translate3d(0px, 100px, 0px)') {
    $('.test').addClass('active');
  } else {
    $('.test').removeClass('active');
  }
}, 1);

person Andrea    schedule 28.07.2017    source источник


Ответы (1)


Вам нужно сделать это, как показано ниже, используя регулярное выражение: -

$(document).ready(function(){
  $('.test').each(function(){
    console.log($(this).css('transform') == 'matrix(1, 0, 0, 1, 0, 100)');
    if($(this).css('transform') == "matrix(1, 0, 0, 1, 0, 100)"){
      $(this).addClass('active');
    } else {
      $(this).removeClass('active');
    }
  });
});
.active {
  color: red;
  font-size: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test" style="transform:translate3d(0px, 100px, 0px)">Hello</div><br/><br/>
<div class="test" style="transform:translate3d(10px, 10px, 100px)">Hello</div>

Примечание: проверьте значение console.log(), и вы увидите, что это матрица.

Взята ссылка: - Получить значения translate3d div?

Чтобы проверить, что какой-либо элемент имеет свойство преобразования или не использует регулярное выражение ниже: -

/matrix(?:(3d)\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))(?:, (\d+)), \d+\)|\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))\))/)

person Anant Kumar Singh    schedule 28.07.2017
comment
Спасибо, теперь я документирую совпадение регулярных выражений. Я не понимаю в вашем примере qul контрольное значение: если бы я хотел покрасить привет красным только тогда, когда речь идет о translate3d (0px, 100px, 0px), а не когда есть другое значение. - person Andrea; 28.07.2017
comment
@Андреа, теперь я изменил свой код. Пожалуйста, проверьте и дайте мне знать, вы поняли это или нет? - person Anant Kumar Singh; 29.07.2017
comment
Спасибо, теперь понял, где ошибся. Спасибо!! - person Andrea; 30.07.2017
comment
@Андреа рада помочь тебе :) :) - person Anant Kumar Singh; 30.07.2017
comment
Может ли кто-нибудь помочь мне с этим? stackoverflow.com/q/62437585/13399106 - person ToxifiedHashkey; 18.06.2020