Jqueryを使用して自分のサイトからHTMLオブジェクトを選択しています。
<div id="banner">
<!-- stuff in here -->
</div>
このコードを使用しています:
$(window).load($(function()
{
var elem = $("#banner");
var top = elem.offset().top;
var maxTop = $("#footer").offset().top - elem.height();
var scrollHandler = function()
{
var scrollTop = $(window).scrollTop();
if (scrollTop<top) {
elem.css({position:"relative",top:""})
} else if (scrollTop>maxTop) {
elem.css({position:"absolute",top:(maxTop+"px")})
} else {
elem.css({position:"fixed",top:"0px"})
}
}
$(window).scroll(scrollHandler);scrollHandler()
}));
ただし、「Uncaught TypeError:Undefinedのプロパティ'top'を読み取れません」というエラーが発生し続けます
何らかの理由で、divの「バナー」が表示されません。
なぜですか?
編集:
以下の提案に従って、コードを$(window).loadから$(document).readyに変更しました。まだ同じ問題。
$(document).ready($(function()
{
var elem = $("#banner");
var top = elem.offset().top;
var maxTop = $("#footer").offset().top - elem.height();
var scrollHandler = function()
{
var scrollTop = $(window).scrollTop();
if (scrollTop<top) {
elem.css({position:"relative",top:""})
} else if (scrollTop>maxTop) {
elem.css({position:"absolute",top:(maxTop+"px")})
} else {
elem.css({position:"fixed",top:"0px"})
}
}
$(window).scroll(scrollHandler);scrollHandler()
}));