在带有溢出的框中没有通过触摸滚动:在可拖动框中滚动/自动
no scrolling via touch in a box with overflow: scroll / auto in a draggable box
我在第二个可拖动的div 框中有一个带有溢出滚动/自动框的div 的问题。在我的台式电脑上,当尝试滚动外框移动时,我可以在 iPad 上毫无问题地滚动内框。
我使用从jQuery UI库中拖动的
下面是一个示例:
http://jsfiddle.net/3rfjB/1/
.HTML:
<div id="outer">
<div id="inner">
A<br/>B<br/>C<br/>D<br/>E<br/>F<br/>G<br/>H
</div>
</div>
.JS:
$('#outer').draggable();
.CSS:
#outer{
position: fixed;
top: 20px;
left: 20px;
width: 400px;
height: 300px;
border: 1px solid black;
}
#inner{
position: absolute;
top: 10px;
left: 10px;
width: 200px;
height: 100px;
overflow: auto;
border: 1px solid red;
}
提前感谢您的建议。
问候雅尼克
我找到了解决问题的方法:
我已经实现了盒子本身的触摸滚动。
var TOUCH_MOVE_TEST_X = undefined;
var TOUCH_MOVE_TEST_Y = undefined;
$('#inner').bind('touchstart', function(event){
TOUCH_MOVE_TEST_X = event.originalEvent.touches[0].clientX;
TOUCH_MOVE_TEST_Y = event.originalEvent.touches[0].clientY;
return false;
});
$('#inner').bind('touchmove', function(event){
event.srcElement.offsetParent.offsetParent.scrollLeft = event.srcElement.offsetParent.offsetParent.scrollLeft + ( TOUCH_MOVE_TEST_X - event.originalEvent.touches[0].clientX );
TOUCH_MOVE_TEST_X = event.originalEvent.touches[0].clientX;
event.srcElement.offsetParent.offsetParent.scrollTop = event.srcElement.offsetParent.offsetParent.scrollTop + ( TOUCH_MOVE_TEST_Y - event.originalEvent.touches[0].clientY );
TOUCH_MOVE_TEST_Y = event.originalEvent.touches[0].clientY;
return false;
});
$('#inner').bind('touchend', function(event){
TOUCH_MOVE_TEST_X = undefined;
TOUCH_MOVE_TEST_Y = undefined;
return false;
});
此致敬意
雅尼克
相关文章:
- JQuery UI可拖动潜水与滚动棒到鼠标
- 支持在画布上滚动和拖动操作
- 移动浏览器-如何删除拖动到水平滚动
- 自定义内容滚动框'的滚动条在拖动时跳转
- 滚动容器时,元素的拖动出错
- 拖放区中可拖动的 Jqueryui 不会滚动,会恢复,滚动条存在
- 在可滚动容器上拖动时防止自动滚动
- 拖动时设置滚动条不透明度
- JQuery UI拖动到可排序状态而不滚动
- 拖动滚动触摸设备,如手机/ iPad
- 谷歌地图在滚动时拖动
- 用于制作可滚动和可拖动图像滑块的库
- 使用 jQuery 拖动滚动页面
- iPad 无法在具有 JavaScript UI 可拖动页面的页面上滚动
- 光滑网格:可以在拖动列时在网格上水平滚动
- 使用 D3.js 拖动元素时滚动
- 拖动时自动滚动
- 触摸拖动画布时滚动页面
- Jquery Fancybox 可拖动的滚动条问题
- 在任一图形上使用滚轮/拖动时放大和缩小/滚动的堆叠图形