【发布时间】:2013-10-16 11:21:44
【问题描述】:
我正在使用答案here 中发布的代码使用mousedown 平移一个大图像,该图像位于另一个透明图像下方的div 中。无需缩放。代码对我来说很好,除了平移从大图像的左上角开始,我希望它从中心点开始,然后向各个方向平移。我对执行此操作所涉及的计算知之甚少,因此非常感谢一些关于如何计算它的指针,或者我需要做什么来指定一个起点。
jQuery 是:
var clicking = false;
var previousX;
var previousY;
$("#scroll").mousedown(function(e) {
e.preventDefault();
previousX = e.clientX;
previousY = e.clientY;
clicking = true;
});
$(document).mouseup(function() {
clicking = false;
});
$("#scroll").mousemove(function(e) {
if (clicking) {
e.preventDefault();
var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
$("#scroll").scrollLeft($("#scroll").scrollLeft() + (previousX - e.clientX));
$("#scroll").scrollTop($("#scroll").scrollTop() + (previousY - e.clientY));
previousX = e.clientX;
previousY = e.clientY;
}
});
$("#scroll").mouseleave(function(e) {
clicking = false;
});
html 是:
<div id="scroll">
<img src="sampleimg.jpg" class="background" />
</div>
<img src="sampleoverlay.png" class="overlay" />
css 是:
#scroll {
width: 580px;
height: 620px;
overflow: hidden;
}
.background {
width: 100%;
height: 100%;
}
.overlay {
width: 100%;
height: 100%;
position: absolute;
pointer-events: none;
}
抱歉,如果这真的很明显 - 我找不到任何可以回答我的问题的东西,但可能没有在寻找正确的东西。
【问题讨论】: