gpt4 book ai didi

javascript - 只掉落到可见的元素

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:37 26 4
gpt4 key购买 nike

我有以下内容:

我正在尝试对其进行设置,以便当您拖动该项目时,它只会掉落到您可以看到的 div 元素,并且不会被掩盖.

所以我用了这个js:

$(".draggable").draggable({
helper: "clone"
})
$("#bottom, .draggable").droppable({
drop: function(event, ui) {
var $this = $(this),
$dragged = $(ui.draggable);
$this.append($dragged.clone());
},
hoverClass: "dragHover"
})​

但它会在两个位置放置元素,即使只有一个放置区域可见!

我该如何解决它,以便不会发生这种情况?

fiddle :http://jsfiddle.net/maniator/Wp4LU/


重新创建页面的额外信息没有 fiddle :

HTML:

  <div id="top">
<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>

<div class="draggable">
Lorem ipsum dolor sit amet
</div>
</div>

<div id="bottom"></div>

CSS:

.draggable {
border: 1px solid green;
background: white;
padding: 5px;
}

.dragHover{
background: blue;
}

#top {
height: 500px;
overflow-y: scroll;
}
#bottom {
height: 150px;
overflow-y: scroll;
border: red solid 4px;
}

最佳答案

尝试使用accept 函数进行设置。 The working demo.

$("#bottom, .draggable").droppable({
drop: function(event, ui) {
var $this = $(this),
$dragged = $(ui.draggable);
$this.append($dragged.clone());
},
accept: function () {
var $this = $(this), divTop= $("#top");
if ($this.is(".draggable")) {
return $this.offset().top < divTop.offset().top + divTop.height() ;
}
return true;
},
hoverClass: "dragHover"
})​;​

关于javascript - 只掉落到可见的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com