【发布时间】:2016-08-11 20:02:18
【问题描述】:
我已经设置了从一个 div 到另一个 div 的 jQuery 拖放,它工作正常。
但是,源 div 有时会超出屏幕的高度,因此我需要为其添加一个垂直滚动条。这是我遇到臭名昭著的溢出问题的地方。
该 div 需要具有 overflow-x: visible 以便拖动的元素在移动到目标 div 时可见。但是,当我将 overflow-y: scroll 或 overflow-y: auto 添加到源 div 时,突然 overflow-x 不再起作用了。
我去过 W3 和一些 StackOverflow 问题,我意识到这不是错误,而是预期的行为(尽管为什么这是预期的超出了我的范围)。但是,我还没有找到适合我的解决方案。
我尝试像一些建议的答案一样将包装器 div 添加到源 div,然后执行以下操作:
.wrapper {
width: 100px;
position: absolute;
top: 4vw;
left: 0;
bottom: 4vw;
overflow-y: auto;
}
.source {
position: relative;
overflow: visible;
z-index: 2;
}
<div class="wrapper">
<div class="source">
<!-- draggable elements go here -->
</div>
</div>
<div class="target">
<!-- draggable elements drop here -->
</div>
但是,尽管现在源 div 的溢出没问题,包装器仍然隐藏了水平溢出。我想我可以将包装器的宽度增加到全屏并使背景不可见并使屏幕上的其他所有内容具有更高的 z-index 以便不在包装器后面,但这似乎是一个非常糟糕的解决方案简单的问题。
谁能帮帮我?
如果 CSS 解决方案不实用,谁能提供一些可能解决问题的 Javascript?
代码示例:jsfiddle
【问题讨论】:
-
你能做一个复制这个问题的小提琴吗
-
这是一个小提琴:jsfiddle.net/9ush466w
标签: javascript jquery css