Остановить прокрутку изображения

Я новичок в передней части. Мне нужно контролировать прокрутку изображения до тех пор, пока прокрутка изображений с правой стороны не закончится, добавив класс isLocked в прекратите прокручивать изображение с левой стороны, пока баннеры с правой стороны вращаются, и добавьте класс isAtBottom, когда прокрутка изображений с правой стороны закончится. Спасибо!!

JsFiddle: https://jsfiddle.net/silvio7d/avgdcLq6/63/

JS

document.addEventListener('scroll', function(){    
  var element = document.getElementById('main-feature');
  if (element.scrollHeight + element.scrollTop == element.scrollHeight){           
    element.classList.add('isLocked');
    element.classList.remove('isAtBottom');
  } else {
    element.classList.add('isAtBottom'); 
    element.classList.remove('isLocked');
  }
});

CSS

.main-banner.isLocked {
        position: fixed;
    }

    .main-banner.isAtBottom {
        top: auto;
        bottom: 0;
        position: absolute;
    }

«Когда изображение в конце» - конец чего? Кстати: element.scrollHeight + element.scrollTop == element.scrollHeight такой же, как element.scrollTop == 0, но это не решает вашу проблему, просто примечание.

bkis 05.12.2018 17:46

Я обновил описание проблемы. Спасибо

Mr Caji 05.12.2018 22:30

Вы пытаетесь создать эффект параллакса?

ciammarino 05.12.2018 22:41

Я не думаю, что это точно эффект параллакса.

Mr Caji 05.12.2018 22:45

Я хотел бы использовать Vanilla Js вместо реакции, которая использовалась на сайте выше

Mr Caji 05.12.2018 22:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
165
1

Ответы 1

Достичь такого поведения с помощью CSS можно только с position: sticky, если вы поддерживаете только современные браузеры.

.main-banner {
  position: -webkit-sticky;
  position: sticky; 
  top: 0
}

Смотрите это пример.

Привет, Брайан. Это решение очень интересно, единственная проблема - поддержка. Может быть, использование префикса поставщика решает проблему.

Mr Caji 07.12.2018 15:43

Вы правы. Я добавил к ответу выше значение -webkit-sticky. Код в связанном примере использует autoprefixer, поэтому скомпилированный код содержит префиксы css props по мере необходимости.

Brian Hadaway 07.12.2018 18:15

Есть ли какое-нибудь решение с использованием чистого JS?

Mr Caji 11.12.2018 15:24

Другие вопросы по теме