ورود

View Full Version : سوال: مشکل تو ذخیره سایز تصویر قبل از تغییر اندازه



se8820726
جمعه 24 آذر 1391, 00:52 صبح
سلام دوستان
آقا یه سایت داریم که وسطش یه تصویر قرار داره حالا میخوایم متناسب با بزرگ و کوچک کردن سایز مرورگر تصویرمون هم بزرگ و کوچک بشه و width و height تصویر هم متناسب باهم تغییر کنند. در واقع کدی نوشتیم که تصویر رو به صورت scale تغییر سایز بده.

کد:

var w = 766;
var h = 1080;
var imgh,imgw;
var resize = function(){
var wh = $(window).height();
var ww = $(window).width();
var ph = $("#img01").height();
var pw = $("#img01").width();
var temp;
if ( (ww/pw)>(wh/ph) ) { //BEGIN section A
imgh = ( wh%2==0 ? wh : (wh+1) );
temp = Math.ceil((w/h)*imgh);
imgw = (temp%2==0 ? temp : (temp+1) ); //END section A
} else { //BEGIN section B
imgw = ( ww%2==0 ? ww : (ww+1) );
temp = Math.ceil((h/w)*imgw);
imgh = (temp%2==0 ? temp : (temp+1) ); //END section B
}
$("#img01").height(imgh).width(imgw);
coord((imgw > pw ? 1 : 2));
};
$( window ).bind("resize", function(){
resize();
});


خوب img01 که id عکسمونه
w و h که سایز اولیه عکسمون هستند.
wh و ww سایز مرورگرند.
ph,pw سایز عکس قبل از تغییر سایز
imgh,imgw سایز جدید عکسه

هربار که سایز پنجره مرورگر رو تغییر بدیم تابع resize اجرا میشه.
خوب تو section A چک میکنه که اگر عرض صفحه نمایش تغییر کنه سایز عکس رو متناسب با WIDTH مرورگر تغییر میده و تو section B چک میکنه که اگر height مرورگر عوض شد سایز عکس رو متناسب با height تغییر میده.

خوب حالا بعد اینا میخوایم چک کنیم ببینیم که اگه عکسمون نسبت به حالت قبلیش بزرگ شد تابع coord با پارامتر 1 اجرا بشه و اگه نسبت به حالت قبلیش کوچک شد تابع coord با پارامتر 2 اجرا بشه.
به همین خاطر اومدم pw را با imgw مقایسه کردم که اگر imgw>pw بشه پس عکس بزرگ شده و در غیر این صورت عکس کوچیک شده.

منتهی مشکلی که اینجا هست اینه که همیشه مقدار pw با imgw و ph با imgh یکی میشه؟؟!!
چرا؟ طبق منطق کد اصلا نباید اینجور بشه!!
من چطوری چک کنم که با هربار اجرای تابع عکس بزرگ تر شده یا کوچک تر؟

se8820726
جمعه 24 آذر 1391, 11:20 صبح
دوستان لطفا راهنمایی کنند