【发布时间】:2017-08-03 23:26:52
【问题描述】:
我正在尝试设置一种方式,让用户能够将鼠标悬停在图像的小预览上,并让“特色”部分以全尺寸显示该图像。我已经设法用下面的代码实现了这一点。
我的问题是当图像的尺寸非常不同时(一张横向和一张纵向看起来很糟糕,并且会导致页面跳转。
目标:我正在想办法避免这种情况。我想找到一种方法以统一的外观显示主图像。又名相同大小。我想在不通过改变大小来严重扭曲图像的情况下做到这一点。非常感谢任何帮助。
查看 JS 小提琴:https://jsfiddle.net/4hrvxpe2/10/
HTML:
<img id='mainPicture' class="image-resposive" src= "https://images-na.ssl-images-amazon.com/images/I/51EG732BV3L.jpg">
<br>
<br>
<div class='smallerImages'>
<img id='imageNum1' class="small" src="http://i.huffpost.com/gen/4393678/images/o-THE-MATRIX-facebook.jpg">
<img id='imageNum2' class="small" src="https://images-na.ssl-images-amazon.com/images/I/51EG732BV3L.jpg">
</div>
CSS:
.smallerImages{
display:inline-block;
}
#mainPicture{
width: 75%;
height: 75%;
display: table; margin: 0 auto;
}
.small{
max-width: 15%;
max-height: 15%;
min-width: 15%!important;
min-height: 15%!important;
}
jquery:
$('#imageNum1').hover(function() {
$('.small').removeClass('selectedImage')
var src = $('#imageNum1').attr('src');
$('#imageNum1').addClass('selectedImage')
$('#mainPicture').attr('src', src);
});
$('#imageNum2').hover(function() {
$('.small').removeClass('selectedImage')
var src = $('#imageNum2').attr('src');
$('#imageNum2').addClass('selectedImage')
$('#mainPicture').attr('src', src);
});
【问题讨论】:
-
最可行和“智能”的解决方案是预先编辑所有图像,例如在 Photoshop 中(或至少绘画)。然后,您将所有内容显示在具有固定大小的容器(例如 div)中......我个人认为通过编码解决该问题不是一个好的解决方案(它是关于图像编辑和渲染而不是编码)跨度>
-
@JasonKrs 感谢您的评论!问题是用户发布图像。所以我无法控制之前的编辑。
-
好的。我现在更了解您的要求
-
Himanshu 在下面有一个不错的选择...我找到了一个完全符合您要求的库。在filestack.com/docs/image-transformations/resize 上查看
filestack.js
标签: javascript jquery html css hover