javascript - 可拖动父级但保持子级可滚动

标签 javascript jquery jquery-ui

在父div上调用draggable时,我无法再在移动设备上滚动子div。当触摸子 div 时,我希望滚动该 div,但让父级保持不被拖动。

$(function() {
  $('.table').draggable()
});
.table
{
 width:200px;
 height:200px;
 border: 1px solid black;
 border-radius: 15px;
 overflow:hidden;
}
.table-lower
{
  overflow-y:auto;
  height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div class="table">
<p>TABLE NAME</p>
<div class="table-lower">
<p>This is the part that I want scrollable on mobile; dont' trigger draggable here on touch</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tincidunt iaculis aliquam. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec scelerisque imperdiet ullamcorper. Etiam sit amet ornare leo, malesuada elementum nibh. Nulla in malesuada est, nec accumsan lorem. Vivamus eget sodales sapien. Donec non nibh nisl. Aenean vitae ipsum eu tortor ultrices vulputate. Suspendisse commodo pretium metus, non lacinia metus ultricies at. Duis ut euismod tortor, in feugiat metus. Nullam condimentum nisl nisi, sit amet dictum metus mollis quis. Phasellus et lectus a lacus ornare convallis.</p>
</div>
</div>

最佳答案

您可以为标题 p 元素分配一个类,并使用它的 handle 。这将确保拖动可以从 title 元素发生,而不是从 .table 元素的每个子元素发生。

工作演示:

$(function() {
  $('.table').draggable({
    handle: 'p.handle'
  })
});
.table {
  width: 200px;
  height: 200px;
  border: 1px solid black;
  border-radius: 15px;
  overflow: hidden;
}

.table-lower {
  overflow-y: auto;
  height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div class="table">
  <p class="handle">TABLE NAME</p>
  <div class="table-lower">
    <p>This is the part that I want scrollable on mobile; dont' trigger draggable here on touch</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tincidunt iaculis aliquam. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec scelerisque imperdiet ullamcorper. Etiam sit amet ornare leo, malesuada
      elementum nibh. Nulla in malesuada est, nec accumsan lorem. Vivamus eget sodales sapien. Donec non nibh nisl. Aenean vitae ipsum eu tortor ultrices vulputate. Suspendisse commodo pretium metus, non lacinia metus ultricies at. Duis ut euismod tortor,
      in feugiat metus. Nullam condimentum nisl nisi, sit amet dictum metus mollis quis. Phasellus et lectus a lacus ornare convallis.</p>
  </div>
</div>

关于javascript - 可拖动父级但保持子级可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50083285/

相关文章:

javascript - 从 javascript 获取 HTML5 WebDB (Web SQL) 数据库的大小

javascript - 如何测试对 REST 服务的调用

javascript - 添加条件时Jquery不执行动画

javascript - 图片更改错误的 CrossSlide 插件

javascript - 选择某个项目时更改下拉菜单的文本

javascript - 让多个振荡器一起发挥作用

javascript - jQuery 可排序 UI 语法问题

javascript - 如何获取调用函数/对象的上下文?

javascript - 对象 JavaScript 中的奇怪行为数组

javascript - 多种波本威士忌补充装莫代尔