如何使用固定位置的jquerydraggable?

如何使用固定位置的jquerydraggable?,jquery,layout,draggable,fixed,Jquery,Layout,Draggable,Fixed,它在firefox中工作得非常完美,但在ie、chrome和opera中却不起作用 <div> has position:fixed, and is .draggable() 具有位置:固定,并且是.draggable() 除了firefox之外,它不工作。不要在CSS中设置固定:它在firefox、chromium、safari、iexplore中工作 var div = $('#id'); div.resizable( { stop: function(event,

它在firefox中工作得非常完美,但在ie、chrome和opera中却不起作用

<div> has position:fixed, and is .draggable()
具有位置:固定,并且是.draggable()

除了firefox之外,它不工作。

不要在CSS中设置固定:它在firefox、chromium、safari、iexplore中工作

var div = $('#id');
div.resizable(
{
    stop: function(event, ui)
    {                       
        var top = getTop(ui.helper);
        ui.helper.css('position', 'fixed');
        ui.helper.css('top', top+"px");         
    }       
});
div.draggable(
{
    stop: function(event, ui)
    {           
        var top = getTop(ui.helper);
        ui.helper.css('position', 'fixed');
        ui.helper.css('top', top+"px");
    }
});

function getTop(ele)
{
    var eTop = ele.offset().top;
    var wTop = $(window).scrollTop();
    var top = eTop - wTop;

    return top; 
}
只需在CSS中使用:

#可拖动{
位置:固定!重要;
}
如果同时使用Dragable和rezisable,请从CSS中删除“!important”,然后将停止选项(停止拖动和调整大小时的回调)设置为此函数:

功能停止(事件){
如果(event.type==“resizestop”){
var topOff=$(this.offset().top-$(window.scrollTop())
$(this.css(“top”,topOff)
}
$(this.css(“位置”,“固定”)
}   

如果在…可拖动(…)上放置断点; 您将看到它被添加到位置:fixed到element.style

只需使用.style.position=“”)撤消即可

我的代码清除了样式,因此它将依赖于css声明。 对于较旧的jQueryUI版本,您可能需要执行拖放停止处理程序。我对此表示怀疑。
但最新版本肯定不是这样。

当然,你不希望它可以拖动并保持不变?你会把屏幕撕下来的,我可以。我希望它在view port中是“固定”的,但我也可以将它向右或向左移动一点(可拖动),如果我将其放下,它应该在新位置“固定”。我在Chrome和FF中得到相同的行为:sje397的代码在IE8和Opera 10.6中也适用于我,但由于css,该元素会固定在底部。如果你指定一个顶部和左侧,那么一切正常。很好!您也可以使用位置:固定;要使用相对位置初始化并修复第一次拖动跳转,请不要忘记添加jquery.ui(否则,您将得到一个错误
TypeError:$(…)。resizeable不是一个函数;)