2017-07-28 11 views
2

私は本当に基本的な質問ですが、私は本当に苦労しているので、私は本当にHTMLでjavascriptとjqueryを使用することに新しいです。消えているドキュメントのタイトル

私は、スクロールダウンを開始すると徐々に消えてしまいたいヘッダーを持つHTML文書を持っています。私はそれに「0.5」と「0.75」のような数値を設定していると、それは、すぐに正常に動作しますが、ため、コードの最初の部分が動作する知っている

document.getElementById("myTitle").style.opacity = (75-document.scrollTop)/75;

:私の現在のコードは少し、このようになります。私のジャッキーの数式を追加すると、それは動作を停止します。

アイデア?ありがとう!

答えて

3

問題:scrollTop要素財産であるとして

document.scrollTopは、undefinedを返します。

documentは要素ではなく、アクセスできるインターフェイスです。

(ドキュメント要素がdocument.documentElementだろうが、それは<html>要素を指しているが、この場合には動作しません。この要素は、スクロールしないので、そのscrollTop値が変化することはありません。)


ソリューション:スクロールだ

実際の要素が<body>で、あなたが参照する必要がありますその代わりにあなたの計算で。

document.scrollTopdocument.body.scrollTopに置き換えてください(下記の作業例を参照)。 jQueryのscrollTopスプライトがどのように動作するか

document.addEventListener("scroll", function() { 
 
    document.getElementById("myTitle").style.opacity = (75 - document.body.scrollTop)/75; 
 
});
body { 
 
    height: 1000px; 
 
} 
 

 
#myTitle { 
 
    padding: 100px; 
 
    background-color: red; 
 
    color: white; 
 
}
<div id="myTitle"> 
 
    THIS SHOULD FADE OUT 
 
</div>

0

あなたはjQueryのを使用している場合:

document.getElementById("myTitle").style.opacity = (75 - $(document).scrollTop())/75; 

お知らせを、マイナスの周りの空白が重要であること!

+0

ません。 jQueryを使用する場合、なぜ '$(selector).css()'を使用しないのでしょうか? – charlietfl

+0

@charlietfl、私のコードに何が問題なのですか? OPが質問 –

+0

の中の彼のコードに書いたので、私は 'css()'の代わりに 'scrollTop()'を使用しています...あなたは不足している '()'を修正しました... ($# 'myTitle')。css( 'opacity'、... ' – charlietfl

0

ユーザーがスクロールするたびに不透明度の値を更新する必要があります。不透明度の値を1回だけ設定すると、スクロールで更新されません。 scrollイベントを使用することができ、ユーザーがスクロールするたびに、現在のwindow.scrollY値(ユーザーがスクロールすると明らかに変化する)に基づいて不透明度の値を設定します。

eventsについては、実際には便利です。

関連する問題