jsfiddle:http://jsfiddle.net/s1d368ce/
当用户向下滚动页面时,我试图让三个单独的标题(h1,h2和h3)淡出。我希望每个标题的淡出比上面的标题略慢,所以我的代码有三个部分,如下所示。然而,只有最后一位工作(即h3淡出,但h2和h1没有。如果我删除h3的最后一节,那么h2淡出但h1没有。如果我删除h3和h2 javascript然后h1淡出。)
我想知道是否有人可以告诉我如何重新组织代码以使其有效?
请参阅我的代码演示;只有h3的代码才有效。但是,如果我要删除javascript代码的'scroll-fade-long-2'部分,那么h2会淡出,但不是h1。 ??
非常感谢你!
jQuery(function($){
//Scroll fade
var divs = $('.scroll-fade');
$(window).on('scroll', function() {
var st = $(this).scrollTop();
divs.css({
'margin-top' : -(st/3)+"px",
'opacity' : 1 - st/135
});
});
//Scroll fade long
var divs = $('.scroll-fade-long');
$(window).on('scroll', function() {
var st = $(this).scrollTop();
divs.css({
'margin-top' : -(st/3)+"px",
'opacity' : 1 - st/255
});
});
//Scroll fade long2
var divs = $('.scroll-fade-long-2');
$(window).on('scroll', function() {
var st = $(this).scrollTop();
divs.css({
'margin-top' : -(st/3)+"px",
'opacity' : 1 - st/355
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1 class="scroll-fade">header 1</h1>
<h2 class="scroll-fade-long">header 2</h2>
<h3 class="scroll-fade-long-2">header 3</h3>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
答案 0 :(得分:3)
My demo编辑:更新了不透明度。做了快速复制粘贴。的工作原理。
您只需拨打$(window).on('scroll', function(){});
一次。
var sf = $('.scroll-fade');
var sfl = $('.scroll-fade-long');
var sfl2 = $('.scroll-fade-long-2');
$(window).on('scroll', function(){
var st = $(this).scrollTop();
sf.css({
'opacity' : 1 - st/135,
'margin-top': -(st/3)+"px"
});
sfl.css({
'opacity' : 1 - st/255,
'margin-top': -(st/3)+"px"
});
sfl2.css({
'opacity' : 1 - st/355,
'margin-top': -(st/3)+"px"
});
});
另见Miro的紧凑型解决方案:http://jsfiddle.net/ocntm9tx/5/
$(window).on('scroll', function(){
var st = $(this).scrollTop();
for(i=1; i<=3; i++){
$('.scroll-fade-'+i).css({
'opacity' : 1 - st/(i*100),
'margin-top': -(st/3)+"px"
});
}
});