当用户向下滚动页面时,我正在尝试将背景图像设置为fadeIn / fadeOut。从长远来看,我正在使用几张背景图像拍摄时间流逝效果。 我已经在滚动中改变了背景图像,但我似乎无法让它们从一个到另一个渐渐消失。
这是我到目前为止所做的事情 - jsFiddle
$(document).scroll(function () {
if ($(this).scrollTop() > 1) {
$('body').css({
backgroundImage: 'url("http://s3.amazonaws.com/dfc_attachments/images/3237846/sun1_web.png")'
});
}
if ($(this).scrollTop() > 250) {
$('body').css({
backgroundImage: 'url("http://s3.amazonaws.com/dfc_attachments/images/3237850/sun2_web.png")'
});
}
if ($(this).scrollTop() > 500) {
$('body').css({
backgroundImage: 'url("http://s3.amazonaws.com/dfc_attachments/images/3237854/sun3_web.png")'
});
}
if ($(this).scrollTop() > 750) {
$('body').css({
backgroundImage: 'url("http://s3.amazonaws.com/dfc_attachments/images/3237858/sun4_web.png")'
});
}
});
答案 0 :(得分:1)
对于遇到此问题的其他任何人来说,这是如何运作的。
$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > 150) {
$('#img2').fadeIn();
}
else {$('#img2').fadeOut('fast')};
if (y > 300) {
$('#img3').fadeIn();
}
else {$('#img3').fadeOut('fast')};
if (y > 450) {
$('#img4').fadeIn();
}
else {$('#img4').fadeOut('fast')};
});
答案 1 :(得分:0)
您无法为background-image
属性设置动画。相反,使用标准<img>
标记渲染图像并将这些标记淡化为彼此。
答案 2 :(得分:0)
在垂直滚动网站上使用此错误拍摄时,在用户向下滚动时,每个“级别”都会替换图像。我试图使用SuperScrollorama但是在踢了一个小时之后我放弃了。这对于简单的垂直“讲故事”风格的网站非常有用。
首先,在标题中:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > 1013) {
$('#machine1swap').fadeIn('slow');
}
else {$('#machine1swap').fadeOut('fast')};
if (y > 2119) {
$('#machine2swap').fadeIn('slow');
}
else {$('#machine2swap').fadeOut('fast')};
if (y > 3216) {
$('#machine3swap').fadeIn({});
}
else {$('#machine3swap').fadeOut('fast')};
});
});//]]>
</script>
和HTML
<body>
<div id="whole_body">
<div id="centre_zone">
<img src="images/1.jpg" width="960" height="822" /><img src="images/2.png" width="960" height="591" />
<div id="machine1"><div id="machine1swap"><img src="images/3_swap2.jpg" width="960" height="450" /></div><img src="images/3_swap1.jpg" width="960" height="450" /></div>
<img src="images/4.png" width="960" height="656" />
<div id="machine2"><div id="machine2swap"><img src="images/5_swap2.jpg" width="960" height="462" /></div><img src="images/5_swap1.jpg" width="960" height="462" /></div>
<img src="images/6.png" width="960" height="635" />
<div id="machine3"><div id="machine3swap"><img src="images/7_swap2.jpg" width="960" height="442" /></div><img src="images/7_swap1.jpg" width="960" height="442" /></div>
<img src="images/8_footer.png" width="960" height="392" border="0" usemap="#Map" />
</div>
</div>
</body>
您需要编辑标题中的“(y&gt; xxxx)”部分以淡入您网页所需的任何一点。我在交换上方添加了两张图片,并将其减去400以使其在屏幕底部淡入。
这对大多数程序员来说可能看起来很愚蠢,但我希望它可以帮助像我这样的任何其他菜鸟做到这一点。