我想知道是否有可能在 JS 中创建一个可拖动的视口。这个想法是让三个 DIV 相互叠加:
- 顶层是一个可拖动的视口,显示最底层的 DIV(图像)
- 中间层是一个完全覆盖底部DIV的大图像
- 底层是被中间层隐藏的大图(视口中的位除外)
我找到了许多有用的库来制作可拖动的 DIV,但我不太确定是否可以让它透过中间层来显示底层。
编辑:我已经上传了我的意思的图表 - 视口看起来“穿过”中间层,在底层 -图表
非常感谢charlietfl,我已经解决了我的问题。我使用了JQuery UI Draggable 插件并将层数减少到两个,只需根据自己的位置调整顶部 DIV (#viewport) 的背景位置。
HTML:
<body>
<div id="container">
<div id="viewport"></div>
</div>
</body>
CSS:
#container {
width: 1600px;
height: 817px;
background-image: url("assets/images/extras2/extras-top.jpg");
position: relative;
}
#viewport {
width: 338px;
height: 235px;
position: absolute;
left: 300px;
top: 20px;
background-image: url("assets/images/extras2/extras-bottom.jpg");
background-position: -300px -20px;
}
JS:
jQuery(function($){
$("#viewport").draggable({containment: "#container", scroll: false});
$("#viewport").on("drag", function(){
$(this).css("background-position", "-" + $(this).position().left + "px -" + $(this).position().top + "px")
});
});