通过DRAGGABLE在另一个DIV下移动DIV?(CSS,JQuery)

时间:2015-04-05 21:14:28

标签: javascript jquery css html5

我有两个不同的图像,我相互叠加。 .image-1是背景图像,.image-2是前景图像。我想这样,因为前景图像是一个包含整个内部的PNG文件。当您浏览整个视图时,您会看到背景图像的一部分。我希望能够通过JQuery中的draggable移动背景图像。这不起作用,因为我无法触摸背景图层,因为它被前景图层覆盖。这是我的源代码:

CSS

.image-1
{
    z-index: 0;
    position: absolute;
    background-image: url("image_1.png");
    width: 400px;
    height: 400px;
    background-repeat: no-repeat;
    background-position: center;
}

.image-2
{
    z-index: 1;
    position: absolute;
    background-image: url("image_2.png");
    width: 400px;
    height: 400px;
    background-repeat: no-repeat;
    background-position: center;
}

HTML

<div class="image-1"></div>
<div class="image-2"></div>

JQuery的

$(".image-1").draggable({});

如何通过可拖动访问背景div,但仍然保留我在后台移动的图像?

编辑:

我试过这样:

$("#image-2").mousedown(function(event)
{
    $("#image-1").draggable({ });
});

但它不起作用。

1 个答案:

答案 0 :(得分:1)

从较高层获取事件并将其传递给较低层。不要在每个mousedown上触发draggable,而是将drag事件传递给下层。

$(".image-1").draggable({});
$(".image-2").mousedown(function(event){
    $(".image-1").trigger(event);
});
.image-1
{
    z-index: 0;
    position: absolute;
    background:#444444;
    width: 400px;
    height: 400px;
    background-repeat: no-repeat;
    background-position: center;
}

.image-2
{
    z-index: 1;
    position: absolute;
    background:#ff0000;
    width: 400px;
    height: 400px;
    background-repeat: no-repeat;
    background-position: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/jquery-ui-git.js"></script>
<div class="image-1"></div>
<div class="image-2"></div>