・画面サイズと要素の位置を取得し、数値で判定を行う。
使い方
function mark_block() {
$(".TargetBlock").each(function () {
add_class_when_visible($(this));
});
}
function add_class_when_visible(target) {
// スクロール位置を取得
var scrollTop = $(window).scrollTop();
var scrollBtm = scrollTop + $(window).height();
// 対象要素の位置を取得
var targetTop = target.offset().top;
var targetBtm = targetTop + target.height();
// 画面内にある場合
if (scrollBtm > targetTop && scrollTop < targetBtm) {
target.addClass('is-show');
} else {
target.removeClass('is-show');
}
}
$(function(){
$(window).on("scroll", function () {
mark_block();
});
mark_block();
});
参考
https://cly7796.net/blog/javascript/determine-whether-an-element-is-in-the-screen/