ポートフォリオ内の一部の画像のサイズを変更するために、JQuery スクリプトを作成しようとしています。横に大きい画像もあれば、縦に大きい画像もあるので、中央部分だけをサムネイル表示するのが私の考えです。それをクリックすると、実際の画像が表示されます (外部スライダーでいいですか?)。
したがって、私が行った小さなスクリプトは次のとおりです。
$(document).ready(function(){
var w_div = $('#portfolio div').width();
var h_div = $('#portfolio div').height();
$('#portfolio div a img').each(function() {
/* Correction estimate: div.width - photo.width / 2 */
var posLeft = -(w_div - $(this).width()) / 2;
var posTop = -(h_div - $(this).height()) / 2;
/* Assignment of new measures to the current image */
$(this).css({left: posLeft+'px', top: posTop+'px'});
});
});
ループを使用して、img グループを取得し、それを反復処理して正しい中心位置を計算しようとします。しかし、なぜ最初の画像でしか機能しないのかわかりません。つまり、このスクリプトはすべての画像の css を変更し、最初の画像のみを正しく測定します。posLeft と posTop の割り当てが変わらないのはなぜですか? 私はそれを理解していません...
(すべての画像の css ファイルに 'position: relative' という文があることを忘れていましたか?
ありがとう!
編集:PHPを使用してサーバー側でこのタスクを実行する方が簡単で良いアイデアでしょうか?