我有一个问题,我想只使用Javascript和JQuery在div中设置图像的高度和宽度。
这是我的代码:
<div class="myGallery">
<img class="replaced" src="myimage.jpg" style="display: inline;">
</div>
.myGallery {
display: table-cell;
height: 220px;
text-align: center !important;
vertical-align: middle !important;
width: 110px;
}
.myGallery img {
text-align: center;
vertical-align: middle;
width: auto !important;
}
function ChangeHW(hdnValue)
{
if (hdnValue==1)
{
//i want to remove height and width attribute of image
//this is working..
$('div.myGallery > img').removeAttr('width');
$('div.myGallery > img').removeAttr('height');
}
else
{
//i want to set height and width attribute of image
//this is not working..i cant set width-height using this line od code
$('div.myGallery > img').css('width', '110px');
$('div.myGallery > img').css('height', '220px');
}
}
有什么想法吗?
答案 0 :(得分:2)
属性与样式不同。假设您当前的图片代码如下所示:
<img src="foo.png" width="200" height="200" />
在$('div.myGallery > img').removeAttr('width')
之后,它将如下所示:
<img src="foo.png" height="200" />
您正在删除宽度属性。现在$('div.myGallery > img').css('width', '440px')
之后,它看起来像这样:
<img src="foo.png" height="200" style="width: 440px;" />
您正在添加宽度,但它是CSS样式而不是属性。试试这个:
$('div.myGallery > img').attr('width', '440');
答案 1 :(得分:1)
试试这个:
$('div.myGallery > img').css('width', '110px !important');
$('div.myGallery > img').css('height', '220px !important');
答案 2 :(得分:1)
这是一个将图像拟合到586x586 div标签的功能。
function img_fit(img_id){
var img_width = $("#"+img_id).width();
var img_height= $("#"+img_id).height();
var max_side = Math.max(img_width, img_height);
var top = 0, left = 0, scale = 0;
var new_width, new_height,new_scale;
scale = (max_side == img_height)? img_height/586 : img_width/586;
if(max_side == img_height){
new_width = img_width / scale;
new_height = 586;
top = 0;
left = Math.round((586 - new_width)/2);
$("#"+img_id).animate({
'width':new_width,
'height':new_height,
'top':0,
'left':left,
'duration':300
});
//$("#"+img_id).width(new_width);
//$("#"+img_id).height(586);
new_scale = 586*scale/img_height;
}
else{
new_height = img_height / scale;
new_width = 586;
top = Math.round((586 - new_height)/2);
//top = 0;
left = 0;
$("#"+img_id).animate({
'width':new_width,
'height':new_height,
'top':top,
'left':0,
'duration':300
});
}
}
答案 3 :(得分:0)
您希望将图像宽度设置为大于包含div,这可能是问题吗?
如果在图片标记removeAttr
中设置了<img src="puppies.jpg" width="100" height="100">
,则删除高度和宽度width
,否则,要在css中更改它,我会设置height = auto
和{{ 1}},或者如果您希望容器确定大小,请尝试类似width:100% height:auto
的内容。
要添加高度和宽度,.css('width','440px')
应该有效。但是如上所述,包含div更小。
答案 4 :(得分:0)
也许这可能会有所帮助:
.newCssClass { height : 110px !important; width : 440px !important; }
$("div.myGallery img").addClass("newCssClass");