可拖动元素滚动另一个 div 溢出

Draggable element scrolling another div with overflow

您好,我对可拖动事件有疑问。 我无法使用助手滚动另一个 div。

这是示例代码,我写道:

$('.test1').draggable({
  helper: 'clone',
  scroll: false,
  appendTo: '.scrolled-box',
  containment: '.test2',
  start: function(e, ui) {
    $(ui.helper).css({
      'opacity': '0.6'
    });
  }
});
.container {
  width: 250px;
  height: 100px;
  background-color: #ffecc9;
  padding: 10px;
  border-radius: 3px;
  border: 1px solid #333;
}

.test1 {
  width: 200px;
  height: 20px;
  border: 1px solid #333;
  background: #33cccc;
  border-radius: 3px;
  margin: auto;
}

.test1>p {
  font-size: 12px;
  font-weight: bold;
  margin: 0 auto;
  display: block;
  width: 100%;
  text-align: center;
  color: #333;
  padding: 2px 0;
}

.test2 {
  margin-top: 15px;
  width: 250px;
  height: 60px;
  overflow: auto;
  background-color: #333;
  border-radius: 3px;
  color: white;
}

.scrolled-box {
  height: 500px;
  width: 100%;
  text-align: center;
  position: relative;
}

span {
  position: absolute;
  bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="test1">
    <p>
      drag me
    </p>
  </div>
  <div class="test2">
    <div class="scrolled-box">
      <span>scrolled box</span>
    </div>
  </div>
</div>

请看这个:JsFiddle

我做错了什么,我不知道是什么。 请帮助我提高可拖动 (jquery ui) 的经验。 我正在寻找没有额外插件的解决方案。就 jQuery Ui.

您还需要处理 droppable 事件

$('.test1').draggable({
  scroll: true,
  helper: 'clone',
  revert: true,
  appendTo: '.scrolled-box',
  containment: '.test2',
  start: function (e, ui) {
   $(ui.helper).css({'opacity': '0.6'});
  }
});

$('.test2').droppable({
  accept: ".test1",
  drop: function( event, ui ) {
    ui.helper.clone().appendTo('.scrolled-box');
    }
});
.container {
  width: 250px;
  height: 300px;
  background-color: #ffecc9;
  padding: 10px;
  border-radius: 3px;
  border: 1px solid #333;
}
.test1 {
  width: 200px;
  height: 20px;
  border: 1px solid #333;
  background: #33cccc;
  border-radius: 3px;
  margin: auto;
}
.test1 > p {
  font-size: 12px;
  font-weight: bold;
  margin: 0 auto;
  display: block;
  width: 100%;
  text-align: center;
  color: #333;
  padding: 2px 0;
}
.test2 {
  margin-top: 15px;
  width: 250px;
  height: 160px;
  overflow: auto;
  background-color: #333;
  border-radius: 3px;
  color: white;
  position: relative;
}
.scrolled-box {
  height: 600px;
  width: 100%;
  text-align: center;
  position: relative;
}
span {
  position: absolute;
  bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div class="container">
  <div class="test1">
    <p>
      drag me
    </p>
  </div>
  <div class="test2">
    <div class="scrolled-box">
      <span>scrolled box</span>
    </div>
  </div>
</div>