Как проверить, является ли фон градиентом или solid цвет - PullRequest
0 голосов
/ 11 марта 2020

необходимо проверить, имеет ли щелчковый элемент градиент или цвет solid в качестве фона

$('.title').on('click', function(){
  if($(this).background.isGradient){  // how to say this?
  console.log('gradient');
  }
  else{console.log('solid color');}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title' style='background:linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); padding:14px 9px 9px 9px; color:black;'>LOREM</div>
<br>
<div class='title' style='background-color:orange; padding: 9px 5px; color:white;'>IPSUM</div>

1 Ответ

1 голос
/ 11 марта 2020

Попробуйте это:

$(document).ready(function() {

  $(".title").each(function() {
    if ($(this).css("background").match(/gradient/)) {
      console.log('gradient');
    } else {
      console.log('solid color')
    }

  })

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title' style='background:linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); padding:14px 9px 9px 9px; color:black;'>LOREM</div>
<div class='title' style='background:linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); padding:14px 9px 9px 9px; color:black;'>LOREM</div>
<div class='title' style='background:#f00; padding:14px 9px 9px 9px; color:black;'>LOREM</div>

Объяснение: Вы l oop просматриваете все элементы с классом .title и читаете свойство css background с помощью $(this).css("background") - если оно содержит строка «градиент», градиент, если нет, то нет.

Это, однако, не учитывает градиент от красного к красному, например, который технически будет градиентом, но показан как solid color.

(возможно, для вас это вообще не важно)

И да, как указано ниже, регулярное выражение /gradient/ может давать ложные срабатывания в некоторых случаях (имена файлов, содержащие слово «градиент», например). Просто придумайте более сложное регулярное выражение для своего точного сценария. Общая концепция, однако, остается прежней.

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