我正在使用此处答案中发布的代码使用 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;
}
抱歉,如果这真的很明显 - 我找不到任何可以回答我的问题的东西,但可能没有在寻找正确的东西。