它在firefox中运行得很完美,但是在chrome和opera中它不起作用。
<div> has position:fixed, and is .draggable()
除了firefox
之外它不起作用答案 0 :(得分:9)
不要在CSS中设置固定:它适用于firefox,chrome,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;
}
答案 1 :(得分:1)
只需在CSS中使用:
#draggable{
position:fixed !important;
}
如果同时使用draggable和rezisable从CSS中删除“!important”,然后将 stop 选项(拖动和调整大小时停止的回调)设置为此函数:
function stop(event){
if(event.type === "resizestop"){
var topOff = $(this).offset().top - $(window).scrollTop()
$(this).css("top",topOff)
}
$(this).css("position","fixed")
}
答案 2 :(得分:0)
如果在... draggable(...)上设置了一个断点; 您会看到它被添加到position:fixed到element.style。
只需使用.style.position =“”;
我的代码清除了样式,因此它会退回到CSS声明中。 对于较旧的jQuery ui版本,您可能需要执行拖动停止处理程序。我对此表示怀疑。 但肯定不是最新的。