放大后的Jquery中心图像溢出:自动容器
jquery center image after zooming in overflow:auto container
在放大图像宽度和高度后,我需要帮助在溢出:auto的容器内居中图像。
实时演示:http://jsfiddle.net/RCw4T/1
基本思想是,当用户将图像的一部分居中并单击缩放时,图像会放大,但仍保持在该部分的居中。这样你就可以继续放大一个部分,而不必在每次点击后寻找该部分。
看起来脚本阻止给top
和left
值小于0,如果你改变逻辑允许值<你应该得到一个居中缩放…>
改变这
iTop = (iNewH < ipH ? (ipH / 2) - (iNewH / 2) : 0);
iLeft = (iNewW < ipW ? (ipW / 2) - (iNewW / 2) : 0);
iTop = (ipH / 2) - (iNewH / 2);
iLeft = (ipW / 2) - (iNewW / 2);
编辑:允许滚动到图像的所有部分(即没有负定位),您可以使用ScrollTo jquery插件
例子小提琴
之类的if (iNewH > $container.height() || iNewW > $container.width()) {
$container.scrollTo({
top:(iNewH - $container.height()) / 2,
left:(iNewW - $container.width()) / 2
});
}
可以考虑改变上面的逻辑来分别处理高度和宽度,我把这个留给你。
这里有一个小提琴:http://jsfiddle.net/maniator/jhDhM/
它可能需要一些调整。
下面是js代码:
var zoomFactor = 1;
$('#container img').click(function(e) {
var iScaler = 1.5,
iH = $(this).height(),
iW = $(this).width(),
iNewH = iH * iScaler,
iNewW = iW * iScaler,
$parent = $(this).parent(),
zoomPosX = (e.clientX - ($parent.width() / 2)) / zoomFactor,
zoomPosY = (e.clientY - ($parent.height() / 2)) / zoomFactor;
zoomFactor *= iScaler;
$(this).css({
top: zoomPosY + 'px',
left: zoomPosX + 'px',
width: iNewW + 'px',
height: iNewH + 'px'
});
});
在您的版本:http://jsfiddle.net/maniator/RCw4T/10/
这修复了小于大于混合,你应该一直居中:-)
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 如何检测是否有溢出
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- 图像宽度和高度,无拉伸或溢出
- 将两个图像合并为一个,并使用javascript进行溢出隐藏
- 当溢出-x 设置为隐藏时处理可变高度图像的最佳方法是什么?
- 绘制图像时JavaScript堆栈溢出
- HTML2Canvas将溢出的内容转换为图像
- 处理溢出的负位置图像:自动
- 溢出的图像;t符合纵横比
- 如何删除覆盖图像查看器的溢出(滚动条)
- Jquery滑块;使容器透明,我如何隐藏图像溢出
- 如何显示溢出:隐藏的内容使用jQuery / JS当用户点击一个图像
- 放大后的Jquery中心图像溢出:自动容器
- 关于制作带有垂直溢出图像的响应式 jquery 轮播的建议
- 图库图像溢出到左边