コードを window.scroll イベント内にラップすると、ドキュメントがスクロールされるたびに呼び出されます。ドキュメントの onload イベントに配置すると、一度呼び出されるため、その後は更新されません。
$(window).scroll(function () {
var the_height = $(window).height(); // viewport height
var activeimage = $(this); // div element
distanceBottom = the_height - activeimage.offset().top + activeimage.height();
});
アップデート
あなたの要件を正しく理解しているかどうかはわかりません。関数定義のコメントアウトは役に立ちますか? また、distanceBottom 変数の使用も見当たりません。
$(document).ready(function () {
$('div.thumbnail-item').mouseenter(function(e) {
contents = $(this).find('.tooltip').find('.invisible').html();
tooltip = $(this).find('.tooltip').find('img');
wholetooltip = $(this).find('.tooltip');
var activeimage = $(this); // div element
tooltip.attr('src', contents);
//$(window).scroll(function () {
var the_height = $(window).height(); // viewport height
distanceBottom = the_height - activeimage.offset().top + activeimage.height();
//});
if (tooltip[0].complete) { // if image already loaded
tooltipWidth = wholetooltip.width();
tooltipHeight = wholetooltip.height();
imgwidth = activeimage.width();
imgheight = activeimage.height();
test = 0 - tooltipHeight + imgheight; // will position nice without gray border
activeimage.css('z-index','999')
.children("div.tooltip")
.css({'top': test,'left': imgwidth + 30,'display':'block'});
} else { // if image not loaded
tooltip.load(function() {
imgwidth = activeimage.width();
imgheight = activeimage.height();
test = activeimage.offset().top - activeimage.offset().top - imgheight;
activeimage.css('z-index','999')
.children("div.tooltip")
.css({'top': test,'left': imgwidth + 30,'display':'block'});
tooltip.css({
'border-color': 'red',
'border-width': '5px'
});
});
}
}).mouseleave(function() {
// Reset the z-index and hide the image tooltip
$(this).css('z-index','10')
.children("div.tooltip")
.animate({"opacity": "hide"}, "fast");
});
});