私はナビゲーションバーとして固定ヘッダを持っています。したがって、「インデックスページのみ」以上を「200px
」にスクロールすると、ヘッダーがbackground: none;
からbackground: #FFF;
に変更され、scroll>=200px
の場合はjqueryのシャドウクラスを追加したいと考えていました。しかし、変更はスクロール後には適用されませんでしたが、要素を調べると、クラスがヘッダーに既に追加されています。反対側では、別の要素とスクロールのために同じクラスを追加すると、同じクラスが適用されます。jquery addClass/removeClassがヘッダで動作しない
アイデアみんな!私のコードは素晴らしかったようですが、欠けているものがあります。ここで
は私のコードです:
HTML:
<header>
<a href="<?php echo hostName() ?>"><img src="<?php echo hostName() ?>/images/icon/dark-logo.png" class="main-logo"/></a>
<nav>
<ul class="clearfix">
<li><a href="#" class="search"><span></span></a></li>
<?php
if(isset($_SESSION['id']) && $_SESSION['type']=="admin")
{
?>
<li><a href="<?php echo hostName() ?>/php/functions/logout.php">logout</a></li>
<li><a href="<?php echo hostName() ?>/admin/dashboard" class="dashboard" target="_blank">dashboard</a></li>
<?php
}
?>
<li><a href="<?php echo hostName() ?>/about">about</a></li>
<li><a href="<?php echo hostName() ?>/explore">explore</a></li>
<li><a href="<?php echo hostName() ?>/courses">courses</a></li>
</ul>
</nav>
</header>
のJs:あなたが探している場合を除き
var lastScrollTop = 0;
$(window).scroll(function(){
var st = $(this).scrollTop();
if (st >=200)
{
// down
$('.container > header').addClass("shadow").css({"background-color":"#FFF"});
$("header > a").fadeIn(200);
}
else
{
//up
$('.container > header').css({"background":"none"});
$("header > a").fadeOut(200);
}
lastScrollTop = st;
});
ありがとうございました。私のコードは変更しましたが...同じprオベレム。ヘッダーがクラスからのCSSスタイリングを受け入れないように思えますが、 'header'を' div'に置き換えましたが、それと同じ問題です。 'fadeIn'と' fadeOut'が動作している行だけがあります... 変更されました:今はうまくいきました。ヘッダに.shadowを追加するのを忘れました –