2014-05-23 114 views
0

我们可以用javascript做到这一点吗?通过javascript调整图像大小或调整图像尺寸

认为我们有任何尺寸斧* Y像素的div
(WIDTH = X和HIGHT = Y)

和用户上传图片,我想找到一种方法,该图像不能在变形容器。 我有一个senario,但不知道它可能通过JavaScript或jQuery除了CSS。你可以看到下面我塞纳里奥但我不知道我怎么能写正确的JavaScript

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; 
} 
+0

我假设你的容器是二次的。然后检查宽度或高度是否较大。如果例如宽度更大,将图像宽度设置为容器宽度并计算2个宽度之间的大小调整因子。使用此因子计算高度,然后将图像放在容器中央。 – Igle

+1

你需要使用JavaScript吗?你可以用CSS来做到这一点。 E.G:http://jsfiddle.net/8LNUQ/ – Moob

回答

0

首先使用JavaScript来获取属性的风格,你应该做到以下几点

var containerWidth = document.getElementById('Container').style.width; 
var containerHeight = document.getElementById('Conatiner').style.height; 
var imgWidth = document.getElementById('myImg').style.width; 
var imgHeight= document.getElementById('myImg').style.height; 

,将返回由CSS本身设置的样式。

其次,auto是元素的原始宽度/高度。如果你想让你的图像或任何元素得到它的父宽度/高度,那么你可以在CSS中使用继承。