如何使用鼠标单击和拖动在较小的 div 中滚动大图像?

Posted

技术标签:

【中文标题】如何使用鼠标单击和拖动在较小的 div 中滚动大图像?【英文标题】:How to scroll a large image inside a smaller div using mouse click and drag? 【发布时间】:2015-07-18 03:12:52 【问题描述】:

我想在 div 中放置一个大图像,并让用户使用鼠标滚动图像(单击并拖动到所需的方向)。怎样才能达到这种效果?

CSS:

#image
    position: relative;
    margin: 0 auto;
    width: 600px;
    height: 400px;
    top: 300px;
    background: url("http://www.treasurebeachhotel.com/images/property_assets/treasure/page-bg.jpg") no-repeat;

html

<div id="image"></div>

编辑: 我想自己实现这个以获取知识,3rd 方框架是最后的手段。

【问题讨论】:

刚刚发现了这个库。它很棒,并且可以通过手机完美响应:interactjs.io 它可能会对您有所帮助 【参考方案1】:
<html>
    <body>
        <div style="width:200;height:200;overflow:scroll;">
            <img src="/home/james/Pictures/scone_ontology.png" />
        </div>
    </body>
</html>

【讨论】:

【参考方案2】:

查看 jQuery UI Draggable。第一个示例听起来就像您正在尝试做的那样: https://jqueryui.com/draggable/

【讨论】:

【参考方案3】:

所以你只想要 600w 400h div,里面有一个“地图”,你可以滚动并用鼠标查看?你已经很接近了。

有一个您希望最终产品占用的大小的 div。确保将其 css 设置为 overflow:scroll;。然后将您的图像放入此 div 中。你的图片当然也可以是 div 的背景图片。

就是这样。

一个很酷的技巧是用overflow:hidden 将所有这些包裹在一个稍微小一点的div 中。小到足以隐藏丑陋的滚动条。但这可能是不好的可用性。

【讨论】:

overflow:scroll 似乎不适用于图像,我无法滚动浏览图像。

以上是关于如何使用鼠标单击和拖动在较小的 div 中滚动大图像?的主要内容,如果未能解决你的问题,请参考以下文章

在所有屏幕上将大 div 居中但允许滚动?

Google翻译下拉窗口不会在较小的屏幕上重新调整大小

如何使用 jQuery 在单击和鼠标悬停时使可滚动的 div 滚动

如何让带有 z-index 的 div 在悬停时覆盖另一个 div

如何阻止 jQuery 函数在较小的屏幕上执行?

UIButton 和 UILabel 在较小的屏幕上不可点击