I have a dynamically generated set of images (with a comment near every image). I want to display every image with max-width and max-height of 48 px, but when the user is hovering over an image it grows to max-width and max-height of 200px. But without moving everything else on the page. This is the code that generates the images:
$(function(){
$.getJSON("inc/API.php",
{command : "getUserComments", userid : getQueryStringValue("userid")},
function(result)
{
for (var i = 0; i<6; i++){
$("#divUserCommentsContent").append("<div id='divUserComment'><div id='divCommentTime'>"+
result[i].commentDateAndTime+"</div><div id='divUserDetail'><div id='divUserpic'>
**<img src='images/"+result[i].imageFileName+"' class='commentpic' />**</div>
<div id='divUsername'>Comment for <a href='rank.html?imageID="+result[i].imageID+
"&imageFileName="+result[i].imageFileName+"'>"+result[i].imageHeader+
"</a></div></div><div id='divCommentText'>"+result[i].comment+"</div></div>");
}
});
});
I marked the image with 2 **. This is the CSS:
.userpic, .commentpic
{
max-height:48px;
max-width:48px;
border-radius:5px;
z-index:1;
position:relative;
}
.commentpic:hover
{
max-width: 200px;
max-height: 200px;
position:relative;
z-index: 50;
}
It enlarges the image, but also moves everything else on the right of it and below the image.
How can I make the images larger, either with CSS (preferably) or with jQuery, without moving everything else here? Thank you!
Try removing width="100%", or set the width manually based on the aspect ratio.
You can use the css property object-fit . ("sets how the content of a replaced element, such as an <img> or <video> , should be resized to fit its container.") Related: object-position (specifies the alignment of an element's contents within its box.)
The Simple Solution Using CSS By setting the width property to 100%, you are telling the image to take up all the horizontal space that is available. With the height property set to auto, your image's height changes proportionally with the width to ensure the aspect ratio is maintained.
We can resize the image by specifying the width and height of an image. A common solution is to use the max-width: 100%; and height: auto; so that large images do not exceed the width of their container. The max-width and max-height properties of CSS works better, but they are not supported in many browsers.
You could try something like setting the position of .commentpic to absolute.
You can see an example here: http://jsfiddle.net/HkPCp/3/
I think this is the behavior you want, right?
EDIT : I updated the jsFiddle so that it won't move the other elements.
Is this the correct behavior?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With