简体   繁体   English

滚动背景图像

[英]Background image change on scroll

I would like to change background image of one div on scrolling the browser. 我想在滚动浏览器时更改一格的背景图像。

Here is my code 这是我的代码

$element = $('.girlBg'),
classNameOne = 'girlBg1';
classNameTwo = 'girlBg2';
classNameThree = 'girlBg3';
classNameFour = 'girlBg4';
classNameFive = 'girlBg5';
classNameSix = 'girlBg6';

$document.scroll(function () {
    if ($document.scrollTop() >= 300) {
        $element.addClass(classNameOne);
    } else if ($document.scrollTop() >= 600) {
        $element.addClass(classNameTwo);
    } else if ($document.scrollTop() >= 900) {
        $element.addClass(classNameThree);
    } else if ($document.scrollTop() >= 1200) {
        $element.addClass(classNameFour);
    } else if ($document.scrollTop() >= 1500) {
        $element.addClass(classNameFive);
    } else if ($document.scrollTop() >= 1800) {
        $element.addClass(classNameSix);
    } else {

    }
});

Now, when i scroll 300px, the first class adding without any problem, but when I scroll more no other classes adding to it. 现在,当我滚动300px时,第一个类添加没有任何问题,但是当我滚动更多时,没有其他类添加到其中。

Please help. 请帮忙。 Thanks.. 谢谢..

you can reverse the conditions 你可以逆转条件

if ($document.scrollTop() >= 1800) {
        $element.addClass(classNameOne);
    } else if ($document.scrollTop() >= 1500) {
        $element.addClass(classNameTwo);
    } else if ($document.scrollTop() >= 1200) {
        $element.addClass(classNameThree);
    } else if ($document.scrollTop() >= 900) {
        $element.addClass(classNameFour);
    } else if ($document.scrollTop() >= 600) {
        $element.addClass(classNameFive);
    } else if ($document.scrollTop() >= 300) {
        $element.addClass(classNameSix);
    } else {

    }

Its because it is always going into your first if. 这是因为它总是进入您的第一个条件。

if ($document.scrollTop() >= 300 && $document.scrollTop() < 600) {

You need a less than check in your if. 您只需要检查一下即可。

You need range as mentioned in above answer of @Thomas Harris. 您需要上述@Thomas Harris答案中提到的范围。 But you need range for all condition. 但是您需要所有条件的范围。 Try this: 尝试这个:

$document.scroll(function () {
    if ($document.scrollTop() >= 300) {
        $element.addClass(classNameOne);
    } else if ($document.scrollTop() >= 600 && $document.scrollTop() < 600) ) {
        $element.addClass(classNameTwo);
    } else if ($document.scrollTop() >= 900 && $document.scrollTop() < 900)) {
        $element.addClass(classNameThree);
    } else if ($document.scrollTop() >= 1200 && $document.scrollTop() < 1200)) {
        $element.addClass(classNameFour);
    } else if ($document.scrollTop() >= 1500 && $document.scrollTop() < 1500)) {
        $element.addClass(classNameFive);
    } else if ($document.scrollTop() >= 1800 && $document.scrollTop() < 1800)) {
        $element.addClass(classNameSix);
    } else {

    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM