Как исправить несколько JQuery, если операторы не работают

Вам необходимо использовать функции shadowView и roundView

shadowView

  • Должен иметь фон color
  • Должно зависеть от roundView
  • Трюк заключается в макете shadowView немного внутри, и его тень должна светиться. Откорректируйте insets так, чтобы shadowView полностью невидимо позади roundView

roundView

  • Должен закрепить подзоны

Код

addSubviews(shadowView, roundView)
roundView.addSubviews(titleLabel, subtitleLabel, imageView)

// need inset
shadowView.pinEdges(view: self, inset: UIEdgeInsets(constraintInsets: 2))
roundView.pinEdges(view: self)

do {
  shadowView.backgroundColor = .white // need background
  let layer = shadowView.layer
  layer.shadowColor = UIColor.black.cgColor
  layer.shadowRadius = 3
  layer.shadowOffset = CGSize(width: 3, height: 3)
  layer.shadowOpacity = 0.7
  layer.shouldRasterize = true
}

do {
  roundView.backgroundColor = .white
  let layer = roundView.layer
  layer.masksToBounds = true
  layer.cornerRadius = 5
}

Или вы можете просто сделать ниже, не указав clipToBounds/maskToBounds

layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 3, height: 3)
layer.shadowOpacity = 0.8

2
задан Islam Elshobokshy 17 January 2019 в 14:21
поделиться

3 ответа

Измените функцию на

function addRemoveLabel() {
lastWidth = $(window).width();
if (lastWidth <= 1150 && lastWidth > 975) {
  console.log('1150');
  addClass();
} else if (lastWidth <= 975 &&lastWidth > 680) {
  console.log('975');
  removeClass();
} else if (lastWidth <= 680) {
  console.log('680');
  addClass();
} else {
  removeClass();
}

}

0
ответ дан Serene Abraham Mathew 17 January 2019 в 14:21
поделиться

Вы должны указать диапазон больше и ниже, чем для каждого из операторов if

$(window).resize(function() {
  function removeClass() {
    $('#cookbook_add').removeClass('st-remove-label');
    $('#email_page').removeClass('st-remove-label');
  }

  function addClass() {
    $('#cookbook_add').addClass('st-remove-label');
    $('#email_page').addClass('st-remove-label');
  }

  function addRemoveLabel() {
    lastWidth = $(window).width();
    if (lastWidth < 1150 && lastWidth > 975) {
      console.log('1150');
      addClass();
    } else if (lastWidth < 975 && lastWidth > 680) {
      console.log('975');
      removeClass();
    } else if (lastWidth < 680) {
      console.log('680');
      addClass();
    } else {
      removeClass();
    }
  }
  addRemoveLabel();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>

JSFiddle : https://jsfiddle.net/on0pet6g/

0
ответ дан Islam Elshobokshy 17 January 2019 в 14:21
поделиться

Проблема заключается в том, что первый if будет достигнут с любым числом < 1150 ... так что 975 < чем 1150, 680 < чем 1150.

Лучший способ - сначала сравнить самые низкие значения:

        if (lastWidth < 680) {
            console.log('680');
            addClass();
        }
        else if (lastWidth < 975) {
            console.log('975');
            removeClass();
        }
        else if (lastWidth < 1150) {
            console.log('1150');
            addClass();
        }
        else {
            removeClass();
        }

Просто измените порядок.

0
ответ дан Wesley Reis 17 January 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: