如何使最大宽度和高度与Jquery ImgViewer插件一起工作
How to make Max Width and Height work with Jquery ImgViewer Plugin
我正在使用ImgViewer v.6来缩放图像(支持IE8)。
当图像较宽而非较高时,效果良好。但是,当图像较高时,整个高度不会显示在容器中。
http://jsfiddle.net/TheFiddler/wmx05cty/
在这个小提琴中,你可以看到顶部图像的一些高度被剪掉了
我需要在不拉伸图像的情况下,用尽可能多的图像填充视口。图像需要保持比例。宽度应为100%,高图像的高度也应与视口高度相适应。高图像需要水平居中,并且其整个宽度和高度最初可见。
因此,我修改了插件来检测高度,如果更高,则将高度设置为视口的高度。
if (height > width) {
var ratio = $view.height() / height;
ih = $view.height();
iw = width * ratio;
}
除图像未居中外,此操作有效。视口和图像上的数学运算不太正确。
http://jsfiddle.net/TheFiddler/qontbr9e/
我需要一种方法来将两个图像放在它们的容器中居中,显示整个宽度,使其填充容器,如果它是一个更高的图像,则调整其大小,使其高度适合init上的容器。
这是一个动态应用程序,所以我不能将样式应用于单个图像。相同的脚本需要使用相同的css处理两个图像。我必须使用v.6版本。
编辑:清理答案。
因此,这个解决方案有点混乱,但它有效:
仅在x 上居中的Fiddle
以x和y 为中心的Fiddle
在小部件构造函数中:
this.$oldview = $img.parent(); //store original container element
然后在更新方法中:
$(this.view).position({
my: "left top",
at: "left top",
of: this.$oldview
});
这会将视口移回原位(由于某些原因,您添加的代码会使视口变为绝对(0,0))。
在更新结束时,我向zLeft
添加了一个偏移量。
var offsetx = //offset need to horizontally center image
(this.$oldview.width() / 2) -
(((this.zimg).width() / 2) / zoom);
$(this.zimg).css({ //center image
left: zLeft + offsetx + "px"
});
这是在更新开始时,因为它在一路缩小时行为不端:
if (zoom < 1) {
this.options.zoom = 1;
zoom = 1;
}
我还删除了text-align:center
。我认为这就是我所做的所有更改。
若你们也希望它垂直居中,同样的事情:http://jsfiddle.net/qontbr9e/10/相同的东西,但对于x和y:
var offsetx = //offset need to horizontally center image
this.$oldview.width() / 2 -
(this.zimg).width() / 2 / zoom;
var offsety = //offset need to vertically center image
this.$oldview.height() / 2 -
(this.zimg).height() / 2 / zoom;
$(this.zimg).css({ //center image
left: zLeft + offsetx + "px",
top: zTop + offsety + "px"
});
我认为,您需要扩展您的图像以使用整个div。如果,我是正确的,那么你可以用css来做这件事。只需将宽度和高度设置为100%。将此类添加到css中。
img {
width:100%;
height:100%;
}
JSFiddle:http://jsfiddle.net/wmx05cty/4/
/**编辑内容**/
如果您只想拉伸(调整大小)图像以适应大于div高度或宽度的div,那么使用这个css。
img {
max-width:100% ;
max-height:100%;
}
JSFiddle:http://jsfiddle.net/wmx05cty/6/
希望,它有帮助。
您需要最大宽度最大高度和自动边距;
http://jsfiddle.net/wmx05cty/7/
css:
img {
max-width:100%;
max-height:100%;
margin:auto auto;
}
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用jquery在填充自动完成的值后使文本框只读
- jQuery:循环一个具有不同超时值的循环
- 用程序搜索JQuery数据表中的文本
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jQuery匹配JSON对象的部分文本
- Jquery POST未填充数组
- JQuery使计数器每次更改时都会增加
- 如何在Angular2中使用jQuery插件
- 提高JQuery的性能
- 无法在通过jQuery的ajax加载的页面中执行javascript
- JQuery合并了keyup和focusout两个函数
- 如何使用jQuery选择下拉列表的值
- 将PHP变量传递给jQuery时遇到问题
- jQuery UI自动完成突然停止工作
- 剑道网格jQuery动画()问题
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- jquery点击函数select&取消选择
- 如何使最大宽度和高度与Jquery ImgViewer插件一起工作