だから私は現時点でこのコードを持っています:
$(document).ready(function(){
$window = $(window),
$sidebar = $(".sidebar"),
sidebarTop = $sidebar.position().top,
sidebarHeight = $sidebar.height(),
$footer = $(".footer"),
footerTop = $footer.position().top,
$sidebar.addClass('fixed');
$window.scroll(function(event) {
scrollTop = $window.scrollTop(),
topPosition = Math.max(0, sidebarTop - scrollTop),
topPosition = Math.min(topPosition, (footerTop - scrollTop) - sidebarHeight);
$sidebar.css('top', topPosition);
});
});
これにより、Uncaught TypeError: Cannot read property 'top' of null が生成されます
私はまだjQueryを初めて使用しますが、これは.sidebarがまだページにないためだと思います。これは、AJAXを介して挿入される外部htmlファイルのdivです。
$(document).ready(function(){ 行を変更して、.sidebar が実際にページ上にあるときに変数を取得する必要があると考えていますが、これを行う方法がよくわかりません。 .on() メソッドで遊んでいますが、まだ運がありません。
どんな助けでも本当に感謝します!
ありがとうございました!
編集:
したがって、この更新されたコードでは:
$(document).ready(function(){
$(window).scroll(function(event) {
var $sidebar = $('.sidebar'),
sidebarTop = $sidebar.position().top,
sidebarHeight = $sidebar.height(),
$footer = $('#footer'),
footerTop = $footer.position().top,
$sidebar.addClass("fixed");
scrollTop = $(window).scrollTop(),
topPosition = Math.max(0, sidebarTop - scrollTop),
topPosition = Math.min(topPosition, (footerTop - scrollTop) - sidebarHeight);
$sidebar.css('top', topPosition);
});
});
$sidebar.addClass("fixed"); の下にUncaught SyntaxError : Unexpected Identifierが表示されるようになりました。ライン。
これは $sidebar が宣言されているということですか? しかし、それは!? 右?
助けてください、これは私を狂わせています!
編集2:
そのため、コードを再度更新すると、window var が定義されていないというエラーが発生したため、グローバルになりました。
$(document).ready(function(){
$window = $(window);
$window.scroll(function(event) {
var $sidebar = $(".sidebar"),
sidebarTop = $sidebar.position().top,
sidebarHeight = $sidebar.height(),
$footer = $("#footer"),
footerTop = $footer.position().top;
$sidebar.addClass('fixed');
scrollTop = $window.scrollTop(),
topPosition = Math.max(0, sidebarTop - scrollTop),
topPosition = Math.min(topPosition, (footerTop - scrollTop) - sidebarHeight);
$sidebar.css('top', topPosition);
});
});
しかし、現在 .sidebar には一定の style="top: -370px;が添付されています。
誰?はは…ああ!