在边界框内拖动和缩放图像
Drag and zoom image within bounding box
我正在尝试在移动web浏览器中复制图像上的夹点和拖动。我可以用hammerjs做到这一点,但我不知道如何将图像保持在边界容器中。例如,如果您被放大得很远,您应该能够平移,但永远不能平移,以便在图像的左边缘和边界容器的左边缘之间有空白。
Imgur做得很好,但他们的代码不是开源的。你知道他们是如何做到这一点的吗?http://m.imgur.com/gallery/LlJr8FA(放大图像并四处平移,它始终保持不变)
试试这个:
HTML/CSS
<div id="my-mask" style="width: 200px; height: 200px; overflow: hidden;">
<img id="my-image" src="big-image.jpg" width="1000" height="1000"/>
</div>
jQuery/JavaScript
// Make sure it always starts @ zero position for below calcs to work
$("#my-image").css({top: 0, left: 0});
var maskWidth = $("#my-mask").width();
var maskHeight = $("#my-mask").height();
var imgPos = $("#my-image").offset();
var imgWidth = $("#my-image").width();
var imgHeight = $("#my-image").height();
var x1 = (imgPos.left + maskWidth) - imgWidth;
var y1 = (imgPos.top + maskHeight) - imgHeight;
var x2 = imgPos.left;
var y2 = imgPos.top;
$("#my-image").draggable({ containment: [x1,y1,x2,y2] });
$("#my-image").css({cursor: 'move'});
来源:使用jQuery draggable?在div剪切掩码中拖动缩放的图像?这还有其他一些东西可能对你也有帮助。
我知道这个答案很晚了,但对于任何寻找无jquery ui解决方案的人来说,这个jquery插件应该可以解决您的问题。
http://plugins.jquery.com/cropbox/
报价形式及其描述:
jQuery插件用于就地裁剪图像(缩放和平移,而不是选择和拖动)。这个插件只依赖于jQuery。如果加载了
Hammer.js
或jquery.hammer.js
,则crospbox插件将支持平移和缩放crospbox的手势。
相关文章:
- 自动缩放图像以匹配文本高度
- 使用-webkit transform:scale()缩放图像
- 缩放图像灯箱
- 保持可缩放图像的纵横比
- 使用 HTML 输出标记查看可缩放图像并分配 src
- 使用弹性框和缩放图像并保持在同一行上
- 查找图像上两点之间的距离,即使缩放图像也是如此
- 当只给定宽度或高度时,是否所有浏览器都按比例缩放图像
- 获取缩放图像的尺寸
- 从输入[类型=文件]缩放图像
- 如何防止 javascript drawImage() 缩放图像
- HTML 画布:缩放图像以适合而不拉伸
- 缩放图像,而不是在调整浏览器窗口大小时环绕图像
- 从中心缩放图像(fabricjs)
- 使用 CSS 在 HTML 中缩放图像
- jQuery SpriteSpin 缩放图像
- 如何更改数据缩放图像值
- 使用 jquery 悬停时缩放图像
- 使用鼠标向下拖动以缩放图像缩略图
- 我如何创建鼠标滚轮可缩放图像