我正在编写一个脚本,当元素出现在屏幕中时,为它们添加不同的动画效果。第一步是检测它们何时出现在屏幕中,但这似乎不起作用。
我尝试过:
- 使用
- 不同的插件,但我发现它们做的比我需要的要多,因此我决定自己编写/查找一些东西。
- 我目前的脚本(我在某个论坛上找到它并决定根据我的需求进行编辑),但它的工作有点奇怪。
我尝试过:
- 使用
.visible()
选择器,但我很快发现这在jQuery中有其他作用。- 不同的插件,但我发现它们做的比我需要的要多,因此我决定自己编写/查找一些东西。
- 我目前的脚本(我在某个论坛上找到它并决定根据我的需求进行编辑),但它的工作有点奇怪。
$.fn.isInViewport = function () {
let elementTop = $(this).offset().top;
let elementBottom = elementTop + $(this).outerHeight();
let viewportTop = $(window).scrollTop();
let viewportBottom = viewportTop + $(window).height();
return elementBottom > viewportTop && elementTop < viewportBottom;
};
$(window).scroll(function () {
if ($('.blogcard ').isInViewport()) {
$(this).addClass("test");
console.log('success.')
} else {
console.log('No success.')
}
});
不幸的是,这似乎没有将类添加到我的 <div class='blogcard'>
中。