mik*_*ike 12 html javascript css jquery
我正在编写一个脚本,当它们出现在屏幕上时,它会为不同的元素提供一些动画。
第一步是检测它们何时进入屏幕。但这似乎不起作用。
我试过的:
-.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.')
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎没有向我的<div class='blogcard'>.
Rol*_*uul 10
您对“this”的使用针对窗口而不是 .blogcard 元素:
$(window).scroll(function () {
if ($('.blogcard ').isInViewport()) {
// Use .blogcard instead of this
$('.blogcard').addClass('test');
console.log('success.')
} else {
// Remove class
$('.blogcard').removeClass('test');
console.log('No success.')
}
});
Run Code Online (Sandbox Code Playgroud)