小さなサムネイル(約50ピクセルの大きさ)として表示するギャラリー画像がたくさんあります。ユーザーが小さな画像の上にマウスを置くと、大きな画像が画像から「大きくなり」(最大100ピクセル)、画像が少しよく見えるようになります。
私はこのコードを持っています。これは、画像がページのどこにあるかを調べ、別の画像(絶対位置)を上部に適用してから拡大します。
$(document).on("mouseover", "img.grow", function() {
var iid = $(this).attr("id");
var isr = $(this).attr("src");
var loc = $(this).offset();
$("body").append('<img class="grown" id="o' + iid + '" src="' + isr + '" style="position: fixed; z-index: 1505; top: ' + loc.top + 'px; left: ' + loc.left + 'px; width: 33px;" />');
$(".grown").animate({
width: '100px',
marginLeft: '-25',
marginTop: '-15'
}, 250);
}).on("mouseleave", "img.grow", function() {
var iid = $(this).attr("id");
$("img#o" + iid).fadeOut(100, function() {
$(this).remove();
});
});
しかし、恐ろしい「バウンス」が発生しています。新しい画像が元の画像の上に配置されると、「マウスリーブ」が起動します。もちろん、これは望ましくありませんが、レイアウトが揺れるのを防ぐために、絶対位置の画像を使用する必要があります。
何か案は?