2011-07-03 7 views
-3

ページの下部にある「」をクリックしてください。は、ブラウザのページ上部にスクロールする必要があります。 IE、FireFoxで動作しますが、Chromeではスクロールアップを拒否します。Chromeでは、ページがスクロールアップされません(jQuery)?

コード:

/* 
    * Scroll to "Show Form", and Focus on first field in form 
    */ 
    $('#goto-show-form').click(function() { 
     $('html, body').animate({scrollTop: $("#show-form").offset().top}, '1000', 'swing', function() { 
      $('#first-field').focus(); 
     }); 
     return false; 
    }); 

任意のアイデア?

おかげ

EDIT:は、私はそれがGoogleのインデックスたくなかったので、私はここに掲載されていたURLを隠しました。それは私がクライアントのために作ったウェブサイトであり、彼らがURLを検索するとき、私は自分のウェブサイトを作るために行った開発トークを表示しないことを好みます。

最初のエラーを確認するには、http://jsfiddle.net/rgPpE/12/をご覧ください。Chromeで見ることができるように、下部のリンクをクリックするとスクロールしません。ただし、&nbsp;のように<a></a>タグの間に何かを追加すると、そこにスクロールされます。

答えて

3

ので、これが正しい答えではない場合、私は削除しますが、は次のように、非空の要素にスクロールしてみてください#send-resume。確認済み:

$('#goto-show-form').click(function() { 

     // --non empty target for the scroll---v 
    $('html, body').animate({scrollTop: $("#send-resume").offset().top}, '1000', 'swing', function() { 
     $('#first-field').focus(); 
    }); 
    return false; 
}); 

はおそらくバージョン12


EDITにバグがあります。空でない要素を対象にすると、問題が修正されます。

+0

うん、それは動作します!要素は空白にすることはできません。 – codemonkey613

+0

@ codemonkey613:ちょうどそれを自分でテストし終わった。それがうれしかった。 :o) – user113716

+0

元々、私はジャンプリンクにを使用していましたが、jQueryのスクロールで気になるかもしれません。だから私はjQueryのためにそのIDを使用して終了しました。しかし、後ろを振り返ると、IDのためにそれを使い続けることは無意味であった。 – codemonkey613

1

スクロールアニメーション機能では、期間を文字列として表示しています。整数としてそれを提供してみてください。私は今、この権利をテストすることはできません

$('#goto-show-form').click(function() { 
    $('html, body').animate({scrollTop: $("#show-form").offset().top}, 1000, 'swing', function() { 
     $('#first-field').focus(); 
    }); 
    return false; 
}); 
+0

これはうまくいきますが、実際にアニメーションが動作するのを妨げないでしょう。それは常にデフォルトに設定されます。 [ここにそのソースがあります](https://github.com/jquery/jquery/blob/master/src/effects.js#L327-328) – user113716

+0

ありがとうございました。私はこのコードを1年前に書きました。初めてjQueryに入ったときです。私は今までこれを気付かなかった:) – codemonkey613

関連する問題