2016-10-01 5 views
0

要素をクリックしたときにdivにスクロールするjQueryのスクロール機能があります。jQueryスムーススクロールで要素を表示する

私が午前問題は、関数は、両方の要素を表示し、それにスクロールしているためということで、スクロールのdivが表示されていると同時にので、スムーズされていない、スクロールが

されていますを開始しますアニメーションを遅らせて#wrapper divを読み込み、アニメーションをスクロールできるようにする方法はありますか?またはそれらの線に沿って何かスクロールがここ

滑らかになるように、jQueryの関数である。

jQuery(document).ready(function($) { 
    $('.divOne').click(function() { 
    $('#wrapper').show(); 
    $('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow'); 
    }); 
}); 
+0

そして、何 '#にロードされて表示されますです。下記を参照してください。ラッパーのdiv、投稿されたコードからすぐに表示する必要がありますので、なぜそれが私たちに説明する必要があります。 – adeneo

+0

img要素とp要素を持つ#wrapper divを表示しているだけですが、スクロールが開始されると同時に表示されるためスクロールがスムーズではありません –

+0

画像をプリロードする必要があります – adeneo

答えて

0

ので、誰かがクリックしたとき、彼らはすでにロードされ、それに#wrapper要素は画像が瞬時に

jQuery(document).ready(function($) { 
    $('#wrapper img').each(function() { 
    var img = new Image(); 
    img.src = this.src; 
    }); 

    $('.divOne').click(function() { 
    $('#wrapper').show(); 
    $('html,body').animate({ 
     scrollTop: $('.divTwo').offset().top 
    }, 'slow'); 
    }); 
}); 
0

はアニメーションにdelay()を使用してみてください。

jQuery(document).ready(function($) { 
    $('.divOne').click(function() { 
    $('#wrapper').show(); 
    $('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow').delay(2000); 
    }); 
}); 
0

コールバックで.fadeIn()代わりの.show()を使用してみてください。あなたは、画像をプリロードすることができます

$(document).ready(function() { 

     $('.divOne').click(function(event) { 
      $('#wrapper').fadeIn(150, function() { 
       $('html,body').animate({scrollTop: $('.divTwo').offset().top}, 'slow'); 
      }); 
     }); 

    }); 
関連する問題