PDA

View Full Version : حرفه ای: تغییر عرض و ارتفاع عکس با javascript



bftarane
جمعه 02 خرداد 1393, 14:03 عصر
سلام.
فرض کنید یه دیو داریم که داخلش یک عکس که توسط کاربر آپلود میشه و ما نمی دونیم عرض و ارتفاع این عکس چیه قرار می گیره.
ولی عرض و ارتفاع دیو مشخصه.
حالا برای دفرمه نشدن عکس من یه سناریو دارم.
ولی نمی دونم چطور باید توسط جاوااسکریپت پیاده سازی باید بشه.
به این شکل:
ابتدا عرض و ارتفاع عکس رو به دست بیاریم.
اگر عرض عکس از عرض دیو بزرگتر بود عرض عکس رو برای با عرض دیو قرار بدیم و
ارتفاع عکس رو
auto قرار بدیم
و حالا این ارتفاع رو به پیکسل به دست بیاریم
حالا اگه این ارتفاع از ارتفاع دیو بزرگتر بود
بیاییم ارتفاع عکس رو برابر با ارتفاع دیو قرار بدیم
و حالا عرض عکس رو برابر با
Auto
قرار بدیم.



من روال رو به صورت زیر نوشتم فقط در حدی که منظورم رو برسونم ولی نمی دونم به چه شکل باید در جاوااسکریپت این رو بنویسم بدون اشکال.
لطفاً راهنمایی کنید.

<div id="Container"><img id="myimg"></div>


1. get image's width and height
var ContainerWidth=document.getElementById("Container").width;
var ContainerHight=document.getElementById("Container").height;
var imgWidth = document.getElementById("myImg").width;
var imgHight =document.getElementById("myImg").height;


if imgWidth > ContainerWidth
{
myimg.style.width = ContainerWidth;
var newHightOfmyimg= myimg.style.height = 'auto';???????????????????????? the main problem: how can I know what is this auto height in px and how can set it in a var?
}

if newHightOfmyimg > ContainerHight
{
UltimateimgHight= ContainerHight;
UltimateimgWidth=auto;
}



این عکس هم می تونه در بهتر فهمیدن سوال من کمک کنه.
http://dentaliran.ir/resize.jpg

mehdi.mousavi
جمعه 02 خرداد 1393, 20:01 عصر
سلام.
شما میتونید با set کردن width یا height تصویر به 100%، تصویر رو در Container مورد نظرتون بر اساس عرض یا طول Scale کنید.
برای این منظور کافیه تا ابتدا بدونیم width تصویر بزرگتره یا height اش، و بر این اساس، width یا height رو (هر کدوم که بزرگتره)
رو 100% تنظیم کنیم.

کدی نوشتم (http://jsfiddle.net/aJGAK/) که نحوه انجام این کارو بهتون نشون بده...

موفق باشید.