スクロールするときに固定ナビゲーションを作成しています。Javascriptはスクロールでナビを固定しました - どういう違いがありますか?
私はそれを動作させましたが、最初のバージョンが正しく動作しない理由が混乱しています。途中で動きますが、途中でウィンドウの上部にくっついています。
バージョン1(正常に動作していない)
https://jsfiddle.net/9dqabdj5/2/
// Get nav
var nav = document.querySelector('nav');
function navOffsetTop() {
if(window.scrollY >= nav.offsetTop) {
document.body.style.paddingTop = nav.offsetHeight + 'px';
document.body.classList.add('fixed-top');
} else {
document.body.style.paddingTop = 0;
document.body.classList.remove('fixed-top');
}
}
window.addEventListener('scroll', navOffsetTop);
バージョン2(ワーキング) - 唯一の違いは、 'offset.Top' では変数です。 バージョン1offsetTop
で
https://jsfiddle.net/9kdy0s9n/
// Get nav
var nav = document.querySelector('nav');
var navTop = nav.offsetTop;
function navOffsetTop() {
if(window.scrollY >= navTop) {
document.body.style.paddingTop = nav.offsetHeight + 'px';
document.body.classList.add('fixed-top');
} else {
document.body.style.paddingTop = 0;
document.body.classList.remove('fixed-top');
}
}
window.addEventListener('scroll', navOffsetTop);
ありがとうございます。あなたはif文の中でそれを呼び出すことはできませんか? –
申し訳ありませんが、そこに銃を飛ばしました – Kiogara
私は今それを得ると思う... は、それが計算から始まる計算の代わりにif文の後ではなく、こんにちはアレクサンダー、あなたの返信をありがとう。 –