@fruneen

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

Всем привет! Возникла проблема (сразу кидаю JSFiddle), нужен скрипт, при котором синий круг изначально не виден, но при попадании в серый блок круг плавно появляется, также прошу учесть, что при выходе из серого блока (в обе стороны) синий круг должен плавно пропадать. Заранее спасибо!

Желательно реализовать на Jquery
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN
const el = document.querySelector('.element');
const wrapper = document.querySelector('.wrapper');


window.addEventListener('scroll', () => {
  const wrapperBox = wrapper.getBoundingClientRect();
  const elBox = el.getBoundingClientRect();

  const isInside = elBox.top > wrapperBox.top && elBox.bottom < wrapperBox.bottom;

  el.style.opacity = isInside ? 1 : 0;
});


И к стилям .element

transition: opacity 0.3s;
opacity: 0;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Фига ты выдал)) тут обычно помогают разобраться с твоим кодом если что-то не получается, а с нуля тет редко что-то пишут) По факту берешь scroll событий и получаешь координаты своего серого блок, потом получаешь координаты круга и как только они пересеклись делаешь появление как только они разошлись скрывать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы