我尝试根据每个当前opacity
为某些图片设置offset
。问题是,如果向下滚动,不透明度不等于所有图像。
这是我尝试完成的,每个图片:
################
# #
# #
# #
# === <= opacity 1
# #
# *** <= opacity 0.6
# #
################
... <= opacity 0
目前它仅适用于前2-3张图像。所有进一步的下来都不是从0-1
设置的,而是从0.5-40
或其他设置。
另一个问题是,如果滚动偏移为0
,则所有图像都被隐藏......
这就是我到目前为止所做的:
var $win = $(window);
var $img = $('img');
$win.on('scroll', function () {
var scrollTop = $win.scrollTop();
$img.each(function () {
var $self = $(this);
$self.css({
opacity: scrollTop / $self.offset().top
});
});
}).scroll();
http://jsfiddle.net/ARTsinn/c5SUC/0/
任何想法如何让这项工作?
答案 0 :(得分:2)
你可以尝试
var $win = $(window);
var $img = $('img');
$win.on('scroll', function () {
var scrollTop = $win.scrollTop();
$img.each(function () {
var $self = $(this);
var prev=$self.prev().offset();
var pt=0;
if(prev){
pt=prev.top;
}
$self.css({
opacity: (scrollTop-pt)/ ($self.offset().top-pt)
});
console.log(scrollTop+" / "+$self.offset().top+"-"+pt);
});
}).scroll();
var $win = $(window);
var $img = $('img');
$win.on('scroll', function () {
var scrollTop = $win.scrollTop();
$img.each(function () {
var $self = $(this);
var prev=$self.prev().offset();
if(prev){
var pt=0;
pt=prev.top;
$self.css({
opacity: (scrollTop-pt)/ ($self.offset().top-pt)
});
}
else{ //SHOW FIRST IMG
$self.css({
opacity: 1
});
}
});
}).scroll();