ユーザーがアップロードした画像プレビューを自分のサイトに表示していますが、div内で垂直方向に中央に配置できるようにしたいと考えています。margin-top
アップロードが完了したら、Javascriptを使用して画像を次のように設定することでこれを試みました($img
問題の画像はどこにありますか)。
reader.onloadend = (function() {
var $parentDiv = $img.parent();
$img.css('margin-top', ($parentDiv.height() - $img.height()) / 2);
});
私が読んだFileReaderのドキュメントonloadend
は、ファイルのアップロードが完了すると呼び出されると私に信じさせます。それは事実のようです。ただし、画像のサイズに関係なく、と呼ばれる時点$img.height()
で戻ってきます。0
onloadend
これは、値がまだ利用できないという事実によるものと思われます。2番目の画像をアップロードして(既存の画像プレビューをクリアして)、最初の画像を再アップロードすると、関数は機能します。$img.height()
正しい値を返します。後でコンソールから呼び出すと、正しく戻ります。
これを処理するための受け入れられた方法はありますか?.height()
の値がゼロより大きくなるまで間隔を置いて呼び出す以外に、の値がいつ使用可能になるかを知る方法はありますか?ありがとう!