2017-07-18 8 views
0

私はスライドでサイトを作っています。私は2つのdivを作成しました.1つは画面の幅と同じ幅を持ち、もう1つは9つのスライド(9つのスライド)です。Jquery .offset()。leftは時々正しい値を返します。時には0を返します。

私は.offset().leftを使って正しい値を設定しています。偉大な作品ですが、時にはそれはまだ立っています

私は問題を発見しました。私はにconsole.logに.offset().left値を印刷しましたが、それはその

Refresh no.1: 0 
Refresh no.2: 0 
Refresh no.3: 1920 
Refresh no.4: 0 
Refresh no.5: 1920 
Refresh no.6: 1920 
Refresh no.7: 0 
Refresh no.8: 1920 
Refresh no.9: 0 
Refresh no.10: 0 
Refresh no.11: 0 

は、時にはそれが時にはそれがありません、正しいだ、と私は理由は分からないように見えます。

+0

ようこそスタックオーバーフロー!この記事を読んで、より速くヘルプを得るための最良の方法で質問する方法を検討してください。 https://stackoverflow.com/help/how-to-ask – Aaron

答えて

-1

これは解決され、誰かが同じ問題を抱えている場合は、解決されます。 それは私がしなければならなかった何completly

をロードし

$(document).ready 

を使用するにもかかわらず、それはページの前にオフセットを計算した、ということらしい。この交換した。これにより

$(document).ready(function(){ 
     $something1 = $('#something1').offset().left; 
     $something2 = $('#something2').offset().left; 
     $something3 = $('#something3').offset().left; 

$(document).ready(function(){ 
    $k = 1; 
    $('#right').on('click',function(){ 
       if($k == 1){ 
        $something1 = $('#something1').offset().left; 
        $something2 = $('#something2').offset().left; 
        $something3 = $('#something3').offset().left; 
        $k = 0; 
関連する問題