Web サイト用に開発している JavaScript に問題があります。ホバーすると開く画像があります。
まず、私のスクリプトは、画像をウィンドウの右側に表示するか左側に表示するかを計算します。
$("html,body").live("mousemove", function (e) {
//console.log("mousemove: "+e.pageX)
var width_window = $(window).width();
var center = width_window / 2;
if (e.pageX < center) {
side = 'left';
} else {
side = 'right';
}
});
次に、ウィンドウのどちら側に画像が表示されるかがわかったら、余白を含むウィンドウの高さと幅に応じて、画像のサイズを変更する別のスクリプトがあります。
this.resizeImg = function (img, offset) {
var d = new Date();
//console.log(d, side);
var window_height = $(window).height();
var img_height = $(img).height();
var img_top = $(img).offset().top;
var window_width = $(window).width();
var img_width = $(img).width();
var img_left;
side == 'left' ? img_left = offset.left : img_left = window_width - offset.left;
console.log(window_width, img_left)
var image_resize_height = window_height - img_top - 20;
var image_resize_width = window_width - img_left - 20;
if (img_height + img_top > window_height && img_width + img_left > window_width) {
console.log("h w")
if (image_resize_width > image_resize_height) {
$(img).css('height', image_resize_height + 'px').css("width", "auto");
} else {
$(img).css('width', image_resize_width + 'px').css("height", "auto");
}
} else if (img_height + img_top > window_height) {
//console.log("h")
$(img).css('height', image_resize_height + 'px').css("width", "auto");
} else if (img_width + img_left > window_width) {
//console.log("w")
$(img).css('width', image_resize_width + 'px').css("height", "auto");
} else {
//console.log("non")
}
};
ほとんど機能しますが、画像がウィンドウの幅または高さを超えることがあります。解決策が見つからない...
ここに私のCSSがあります:
.vignette {
max-height: 800px;
max-width : 800px;
z-index : 2;
top : 25px;
}
.info{
position : relative;
}
.info img {
position : absolute;
display : none;
cursor : pointer;
}
jsFiddle の私の完全なスクリプト: http://jsfiddle.net/CrnNZ/
ここに私のウェブサイトへのリンクがあります: http://olivierlellouche.com/
助けてくれてありがとう!