2013-04-01 7 views
1

Я изо всех сил пытаюсь изменить свое фоновое изображение во время прокрутки. Я пробовал решения, размещенные на похожие вопросы, но пока не повезло, он отобразит только первое фоновое изображение.jQuery Изменение фоновых изображений при прокрутке

В основном у меня есть фон, установленный в фиксированное положение, и несколько div, каждый из которых имеет размер окна просмотра и каждый с верхним краем размером с высоту видового экрана. Другими словами, при прокрутке пользователь видит фоновое изображение только после прокрутки каждого div. Я хочу, чтобы фоновое изображение изменилось после прокрутки каждого div.

Вот код:

$(window).scroll(function() { 
    var windowY = $(window).height(); 
    var scrolledY = $(window).scrollTop(); 
    var image_url = '/images/image1.jpg'; 

    if (scrolledY > windowY) { 
     image_url = '/images/image2.jpg'; 
     } 

    $('body').css('background', "url(" + img_url + ")"); 

}); 

Заранее спасибо!

+0

Вашего код уродлив, проверьте значение «фон», то есть странствующая скобка и не закрыт должным образом. – doublesharp

+0

Поместите изменение фона внутри вашей функции прокрутки или укажите ему отдельное имя функции, которое вы вызываете в условии if. – Daniel

ответ

0

У вас было два опечатка, круглые скобки, а затем ваше имя переменной image_url. Изначально вы были:

$(body).css('background', "url(" + img_url) + "'"; 

Изменить на:

$(body).css('background', "url(" + image_url + ")"); 

Скобки были неправильными, и в конечном счете, так был окончательный, сцепленных строка. Кроме того, ваша переменная была объявлена ​​как image_url, но в вашей функции css вы использовали img_url.

+0

закрыть еще нужно закрыть правый паз :) – doublesharp

+0

lol да! Обновлено, спасибо. – Jace

+0

Упс, хороший улов, спасибо! К сожалению, это не похоже на то, что исправленный код все еще не работает:/ –

0

Изменить вызов фоновой собственности

$(window).scroll(function() { 
    var windowY = $(window).height(); 
    var scrolledY = $(window).scrollTop(); 
    var image_url = '/images/image1.jpg'; 

    if (scrolledY > windowY) { 
    image_url = '/images/image2.jpg'; 
    backgroundChange(image_url); 
    } 
}); 


function backgroundChange(img_url){ 
    $("body").css("background", "url(" + img_url + ")"); 
} 
+0

, к сожалению, не повезло с этим либо –

+0

Хорошо, это все же хорошая идея разместить его отдельно, чтобы вы могли его назвать любым изображением. Вы пытались поместить функцию вне $ (document) .ready (....) ..? Конечно, всегда проверяйте пути. Часто это просто так. После второго взгляда на ваш код он должен работать. Проверьте консоль firebug! – Daniel

+0

Упс ... Do $ ("body") ... – Daniel

Смежные вопросы