我使用了一个简单的函数,让一个元素只有在窗口向下滚动时才出现。问题是,我的函数基于元素的ID --但我实际上有多个元素,我希望相同的函数独立地在每个元素上工作。所以理论上,#scroll-to
应该是一个类,而不是一个ID。我知道一定有比命名每个元素#scroll-to-1
,#scroll-to-2
,scroll-to-3
并为每个元素一遍又一遍地重写函数更好的方法来做到这一点,但我不知道该怎么做!
谢谢!
这是基本功能:
$(window).scroll(function() {
var hT = $('#scroll-to').offset().top,
hH = $('#scroll-to').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
// when element is scrolled into view:
if (wS > (hT+hH-wH)){
$('#scroll-to')
.css( {opacity: 1});
}
// when element is scrolled out of view:
if (wS < (hT+hH-wH)){
$('#scroll-to')
.css( {opacity: 0});
}
});
1条答案
按热度按时间cgh8pdjw1#
您只需要对代码做很小的更改就可以将目标应用于多个元素。正如您所建议的,您将使用一个类来选择所有目标元素。然后,您将.each覆盖该集合,并在
each
处理程序中应用定位逻辑。由于window
属性不会更改,因此可以将这些变量赋值留在.each
处理程序之外。