Задать вопрос
@serzhei
Верстка, программирование

Как на сайте риализовать изменение background при скроллинке страницы?

Хочу сделать в шапке изменение картинок при прокрутке страницы, у меня есть например 100 картинок при скролинге они они начинают меняться и получается эффектвидео, когда заканчиваются все 100 картинок страница начинается прокручиваться дальше. Не обязательно чтобы картинки были backgriund, может даже есть готовые библиотеки?
  • Вопрос задан
  • 8004 просмотра
Подписаться 6 Оценить 1 комментарий
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
upd2:
codepen.io/iiil/pen/eaEnp
Примерно вот так, картинки кинете в одну папку, назовите как в примере: back1, back2 и т.д.
Используется jquery плагин mousewheel
При прокрутке он определяет дельту, и если она меньше нуля (крутим вниз), то присваивает бэкграунду следующую картинку, в красный блок я вывел это число. Если воспользуетесь просмотром кода, то увидите, как меняется свойство background-image. После того, как картинки заканчиваются - начинается скролл как обычно. Если надо реализовывать и прямую, и обратную прокрутку - то допишите сами или жду коммерческого предложения, так как идею я наглядно показал, думаю что сами допилите. Как я уже говорил - картинки надо предзагрузить. Иначе путь-то будет меняться, но загружаться картинки не будут успевать. И даже в этом случае, учитывая объем картинок, боюсь будет тупить.

upd:
1. Для того, чтобы картинки успевали меняться - Вам их необходимо предзагрузить. С сотней картинок определенно будут проблемы.
2. Не совсем понятно, сначала при скролле должны меняться только картинки, а страница оставаться статичной? И только после того, как картинки закончатся - начинаться скролл? По крайней мере именно так я понял из вопроса.
3. Какой размер и характер картинок? Может быть подойдет спрайтовая анимация?

Совсем другое дело
Все Ваши ответы уйдут в пустоту. Призываю не отвечать данному товарищу, пока он не отреагирует на предыдущие вопросы.
В большинстве вопросов есть правильные ответы. На месте модераторов я бы за такое банил.
Iewedw7.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GM2mars
@GM2mars
Для решений со скролом нужно делать проверку на шаг, при котором будет меняться картинка. Так как событие скрол срабатывает при сдвиге на 1px.
То есть к примеру мы хотим менять картинку на каждые 100px скрола вниз:

var step=100;
$(window).scroll(function() {
    var index = $(this).scrollTop();
    if (index>step) {
      step+=100; //можно и step=index+100 (нужно смотреть что будет лучше)
      (меняем картинку, алгоритм можно любой придумать)
    }
  });
Ответ написан
Что-то типа того вам нужно
$(window).scroll(function(){
     // тут всякие вычисления высоты и смена бекграунда в зависимости от вычислений
     $('#target').css('background','url(images/background.jpg)');
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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