ここから と呼ばれる単純な関数を見つけました。これisScrolledIntoView
は、要素がビューポート ビューにあるかどうかを確認するために使用されます。
function isScrolledIntoView(elem) {
var $window = $(window),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $(elem).offset().top,
elemBottom = elemTop + $(elem).outerHeight();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
上記の関数は次のように実装できます。
$(window).on("scroll", function() {
$('div.video').each(function() {
// Change the div element into a video when reached the visible area
if (isScrolledIntoView(this)) {
$(this).replaceWith('<iframe class="video" src="' + $(this).data('video') + '"></iframe>');
}
});
});
デモ: http://jsfiddle.net/tovic/vVaat/11/