首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在div内拖动div (子>父)

问在div内拖动div (子>父)
EN

Stack Overflow用户
提问于 2015-01-12 12:03:08
回答 1查看 2.8K关注 0票数 1

我试了很多次,但我没能成功:

我在div中有一个div,并且希望子(= inside div)只能在父级中被拖动。事情是这样的:孩子比父母大,每次我想把孩子拖到父母里面时,它总是在父母身边立即抓拍,因为它不合身。

任何解决方案都将不胜感激!

这是一个项目:

http://jsfiddle.net/yc5f9ym6/

以下是我想要做的:

http://jsfiddle.net/WBv9r/1/light

HTML

代码语言:javascript
复制
    <div class="nhood">
        <div class="image"></div>
    </div>


</div>

CSS

代码语言:javascript
复制
.image {
    width: 600px;
    height: 600px;
    border: solid 5px black;
    background: green;
    cursor:move;
}



.nhood {
    margin: 100px auto 0 auto;
    overflow: hidden;
    width: 400px;
    height: 400px;
    position: relative;
}

JS

代码语言:javascript
复制
$(".image").draggable(
    {
        containment: ".nhood"
    });

谢谢!

澄清:儿童的边界应与父母的边界相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 12:11:03

现在,让yout问题变得更清楚,您需要的是更改containment选项。

您需要使用Array选项,并将框大小定义为可拖动的位置:

代码语言:javascript
复制
var draggable = $('.image');
var viewport = $('.nhood');
var viewportOffset = viewport.offset();
var box = 
    {
        x1: viewportOffset.left + (viewport.outerWidth() - draggable.outerWidth()),
        y1: viewportOffset.top + (viewport.outerHeight() - draggable.outerHeight()),
        x2: viewportOffset.left,
        y2: viewportOffset.top
    };

$(".image").draggable(
        {
            containment: [box.x1, box.y1, box.x2, box.y2 ]
        });

http://jsfiddle.net/yc5f9ym6/5/

诀窍是在方框坐标上,注意x1和y1是当前位置减去所需的空间,以显示父节点中子节点的底部或右侧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27901547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档