将一系列If语句组合成一个代码

Combine Series of If Statements into one Code

本文关键字:一个 代码 一系列 If 语句 组合      更新时间:2023-09-26

现在我有一系列if语句,每个语句都测试窗口是否滚动过某个点,如果是,则改变背景。由于每个if语句都非常相似,我想知道是否可以将所有if语句合并为一个。由于我有一百多张图片,使用我目前使用的这种方法,我必须为每张图片创建一个if语句。

下面是我的代码示例。您会注意到的唯一变化是scrolltop()/2> _和MAH00046%2028.jpg.

    if ($(this).scrollTop()/2 > 2800) {
    $('body').css({
        backgroundImage: 'url(    "images/chapter_background_images/MAH00046%20028.jpg")'
    });
}
if ($(this).scrollTop()/2 > 2900) {
    $('body').css({
        backgroundImage: 'url(    "images/chapter_background_images/MAH00046%20029.jpg")'
    });
}

效果最好:

var imageBase = 'images/chapter_background_images/MAH00046%200';            
var scrollTopHalf = $(this).scrollTop() / 2;
if(scrollTopHalf < 2900 || scrollTopHalf > 3900)
{           
    var image = imageBase + (Math.floor(scrollTopHalf / 100)).toString() + '.jpg';
    $('body').css({
        backgroundImage: 'url("' + image + '")'
    });
}

不使用if语句,而是使用计算结果来创建指向图片的链接,因为图片的名称是连续的数字。

var inc = 100;
var imgUrl = 'images/chapter_background_images/MAH00046%';
var url = imgUrl.concat((Math.floor(scrollTop()/2)/inc)*inc).toString());

我在这里使用100,但是你可以为你的图片之间的每个增量值改变这个值。

javascript底层方法

javascript连接方法

Javascript tostring方法

使用for循环并假设增量为100,基数为2800(并将每个jpg文件名的数字成功地增加1

)
function myFunction() {
var counter = //number of if statements
for (i = 28; i <= i + counter; i++) {
    if ($(this).scrollTop()/2 > 100*i) {
        $('body').css({backgroundImage: 'url("images/chapter_background_images/MAH00046%200"' + i + '".jpg")'});
    }
}
相关文章: