Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery UI可拖动屏幕滚动跳转_Jquery_Jquery Ui_Internet Explorer - Fatal编程技术网

jquery UI可拖动屏幕滚动跳转

jquery UI可拖动屏幕滚动跳转,jquery,jquery-ui,internet-explorer,Jquery,Jquery Ui,Internet Explorer,我的jQueryUIDragable工作得很好,除非我试图将某些内容拖离屏幕,导致屏幕滚动。然后选定的项目跳转到谁知道在哪里-你再也看不到它了。有人知道我如何解决这个问题吗?多谢各位 现在我们在jquery-ui-1.8.24和jquery-1.8.2上 如果您在body元素上设置了overflow属性,这个问题就会消失。不知道为什么 body { overflow: auto; } 请注意,当使用jQuery uidraggable时,appendTo的元素样式应该是position

我的jQueryUIDragable工作得很好,除非我试图将某些内容拖离屏幕,导致屏幕滚动。然后选定的项目跳转到谁知道在哪里-你再也看不到它了。有人知道我如何解决这个问题吗?多谢各位

现在我们在jquery-ui-1.8.24和jquery-1.8.2上

如果您在
body
元素上设置了overflow属性,这个问题就会消失。不知道为什么

body {
    overflow: auto;
}

请注意,当使用jQuery ui
draggable

时,
appendTo
的元素样式应该是
position:relative
,在使用jQuery找不到解决方案后,我实现了我自己的拖动-对我来说很好。 它还允许我删除jQueryUI,这非常棒。 请注意,draggable和handle是jquery元素,而limits是一个对象。 这是代码-

function initializeDrag(draggable, handle, limits) {
                            var initialMousePosition, initialDraggablePosition;
                            handle.on('mousedown', function (e) {
                                initialMousePosition = {
                                    x: e.pageX,
                                    y: e.pageY
                                };
                                initialDraggablePosition = {
                                    top: parseInt(draggable.css('top'), 10),
                                    left: parseInt(draggable.css('left'), 10)
                                }
                                document.addEventListener('mousemove', onMouseMove);
                                document.addEventListener('mouseup', onMouseUp);
                            });

                            function onMouseMove(e) {
                                var verticalDelta = e.pageY - initialMousePosition.y;
                                var horizontalDelta = e.pageX - initialMousePosition.x;
                                var topRes = initialDraggablePosition.top + verticalDelta;
                                var leftRes = initialDraggablePosition.left + horizontalDelta;
                                topRes = Math.max(topRes, limits.top);
                                topRes = Math.min(topRes, limits.bottom);
                                leftRes = Math.max(leftRes, limits.left);
                                leftRes = Math.min(leftRes, limits.right);

                                draggable.css({
                                    top: topRes + 'px',
                                    left: leftRes + 'px'
                                });
                            }

                            function onMouseUp() {
                                document.removeEventListener('mousemove', onMouseMove);
                                document.removeEventListener('mouseup', onMouseUp);
                            }
                        }

面向对象,并将JSFIDLE设置为jQuery1.8.3/jQueryUI1.9.2。当主体css被移除时,问题再次出现,我认为这已经足够接近了