2017-01-10 13 views
0

私は何をしたいですか? jquery(scrollTop)を使ってHTMLと本文をdivにスクロールさせるため、表示されていないdiv(CSSの属性ではなくユーザーのために)を削除します。今私はjqueryでスクロールダウンbeforr表示されたdivを削除したい。divを削除しますが、スクロール位置が変更されないようにするにはどうすればよいですか?

編集:.header divを削除した後、#beginingはページの先頭になり、.header divは永久に削除する必要があります。

問題が何ですか? 私はスクロールし、次のコード行を使ってdivを削除しました:$('.header').css('display','none');スクロール位置が変わります。

divをスクロールダウンして削除するコード。

function scrollToBegining(){ 
     $('html, body').animate({ 
      scrollTop: $("#begining").offset().top 
     }, 750); 

     setTimeout(function(){ 
      $('.header').css('display','none'); 
     },750); 

    } 

可視化問題: GIF of the problem (Watch to understand better)

答えて

1

これは奇妙ですが、私はより良い選択がslideUp div要素の代わりに、スクロールのにあると思う:それはもはやスクロールだから

明らか
function scrollToBegining(){ 
    $('.header').slideUp(750); 
} 

は、機能の名前を変更しません。

+0

これはうまくいきますが、少し違って見えます。あまりにも悪くないですが、なぜこの "スクロールバージャンプ"効果を得るのか別の考えがありますか? –

+0

あなたのやっていることだけです。ヘッダーを元に戻したいのであれば、slideDownで元に戻したいから、この方法はより良いと思います。はるかに簡潔ではるかに簡潔です。 –

+0

私はあなたに非常に同意します。あなたの答えはThansk。 –

0

あなたはdiv要素を隠しますが、そのスペースを確保するためにvisibility: hiddenを使用することができます。また、display: noneを使用するときに、スクロール位置を変更する必要があることがあります。

+0

を経験しているが、私はスペースを確保したいいけない奇妙な身震いスクロールの問題を防ぐことができます。それは永遠に消えるべきであり、#beginingはページの上部の.header divを削除した後です。しかし、答えに感謝します。 –

0
visibility: hidden 

は、あなたが探しているが、私はこの種の問題で使用、別の解決策ではなく、2番目のdivにスクロールダウンであり、それが0になるまで、最初のdiv要素が均一なアニメーションで、その高さを縮小しなければならないものです。これは、[はい

+0

ちょっとjquery slideUp()関数のようですか? –

+0

あなたのアプリケーションでjqueryを使用している場合にもうまくいくでしょう –

0

document.querySelector('#header h1').addEventListener('click', closeHeader) 
 
function closeHeader(){ 
 
\t document.querySelector('#header').classList.add("hidden"); 
 
}
#header { 
 
    height: 300px; 
 
    width: 100%; 
 
    background: red; 
 
    text-align: center; 
 
} 
 

 
#content { 
 
    height: 1000px; 
 
    width: 100%; 
 
    background: yellow; 
 
    text-align: center; 
 
} 
 

 
.hidden { 
 
    display: none !important; 
 
    margin: 0 !important; 
 
    padding: 0 !important; 
 
}
<div id="header"> 
 
    <h1> 
 
    HEADER 
 
    </h1> 
 
</div> 
 
<div id="content"> 
 
    CONTENT 
 
</div>

+0

ヘッダを再度表示するには:document.querySelector( '#header')。classList.remove( "hidden"); ' – DomeTune

+0

jquery scrollTop()関数でそれを使用したい。私はあなたのコードを適用し、私はあなたのコード行を使用してjsのスクロールをした後:document.querySelector( '#header')。classList.add( "hidden");ヘッダーを非表示にしますが、問題はまだそこにあります(スクロールバーがジャンプダウン) –

+0

内容は小さくなり、スクロールバーはスクロールインデックスにとどまります。次に、差を上下にスクロールする必要があります。 'var startIndex = scroll.index; hideHeader(); var newIndex = scroll.index; var scrollHeight = startIndex - newIndex; 'しかし、私はスクロールインデックスを取得する方法を知りません。 – DomeTune

関連する問題