使用 jQuery 根据滚动位置递增图像 src
Incrementing image src based on scroll position with jQuery
我想使用 jQuery 使 div 的背景图像属性在用户每次滚动一定量(例如 30 像素)时增加 1。我有大约 40 张名为 frame1.jpg、frame2.jpg 等的图像。我通过为每个步骤设置条件(在 30 像素后显示第 1 帧,在 60 像素后显示第 2 帧等)成功地实现了这种效果,但是当我尝试使用 "for" 循环执行此操作时,一旦我滚动,它就会转到 frame3.jpg,最后一张之前的图像,然后在接下来的 30 像素之后跳到最后一张图像(frame4.jpg).
我实际上会在水平视差式布局中使用它,但我想先以最简单的方式了解该技术。
这是我尝试过的方法(只有 4 帧),如有任何帮助,我们将不胜感激。谢谢!
HTML:
<div id="container">
<div id="inner"></div>
</div>
CSS:
#container {
width: 100%;
height: 2000px;
position:absolute;
}
#inner {
position:fixed;
top:0;
width:100%;
height:400px;
background-size:cover;
}
Javascript:
$("#inner").css("background-image", "url(http://holis.ro/frames/frame1.jpg");
$(window).scroll(function() {
var value = $(this).scrollTop();
for (var i = 0; i < 4; i++) {
if (value < 40 * i)
$("#inner").css("background-image", "url(http://holis.ro/frames/frame" + i +".jpg)");
else if (value < 40 * (i+1))
$("#inner").css("background-image", "url(http://holis.ro/frames/frame" + (i+1) +".jpg)");
}
});
找出 scrollTop()
值之间的关系。
而用户是:
var oldindex = 1;
$(window).scroll(function() {
//floor or ceil to get int valeu
var newindex = Math.Math.ceil($(this).scrollTop()/ 30 ) //30 px
if(newindex!=oldindex && newindex<=40){ //add limitation 40 images
$("#inner").css("background-image", "url(http://holis.ro/frames/frame"+newindex+".jpg");
oldindex = newindex
}
});
我想使用 jQuery 使 div 的背景图像属性在用户每次滚动一定量(例如 30 像素)时增加 1。我有大约 40 张名为 frame1.jpg、frame2.jpg 等的图像。我通过为每个步骤设置条件(在 30 像素后显示第 1 帧,在 60 像素后显示第 2 帧等)成功地实现了这种效果,但是当我尝试使用 "for" 循环执行此操作时,一旦我滚动,它就会转到 frame3.jpg,最后一张之前的图像,然后在接下来的 30 像素之后跳到最后一张图像(frame4.jpg).
我实际上会在水平视差式布局中使用它,但我想先以最简单的方式了解该技术。
这是我尝试过的方法(只有 4 帧),如有任何帮助,我们将不胜感激。谢谢!
HTML:
<div id="container">
<div id="inner"></div>
</div>
CSS:
#container {
width: 100%;
height: 2000px;
position:absolute;
}
#inner {
position:fixed;
top:0;
width:100%;
height:400px;
background-size:cover;
}
Javascript:
$("#inner").css("background-image", "url(http://holis.ro/frames/frame1.jpg");
$(window).scroll(function() {
var value = $(this).scrollTop();
for (var i = 0; i < 4; i++) {
if (value < 40 * i)
$("#inner").css("background-image", "url(http://holis.ro/frames/frame" + i +".jpg)");
else if (value < 40 * (i+1))
$("#inner").css("background-image", "url(http://holis.ro/frames/frame" + (i+1) +".jpg)");
}
});
找出 scrollTop()
值之间的关系。
而用户是:
var oldindex = 1;
$(window).scroll(function() {
//floor or ceil to get int valeu
var newindex = Math.Math.ceil($(this).scrollTop()/ 30 ) //30 px
if(newindex!=oldindex && newindex<=40){ //add limitation 40 images
$("#inner").css("background-image", "url(http://holis.ro/frames/frame"+newindex+".jpg");
oldindex = newindex
}
});