2010-08-04 4 views
5

Он отлично работает в firefox, но в хром и опера он не работает.Как использовать jQuery draggable с фиксированным положением?

<div> has position:fixed, and is .draggable() 

и он не работает, кроме светлячок

+4

Конечно, вы не можете хотеть, чтобы это было перетаскивать и оставаться в том же положении? Вы отключите свой экран. – sje397

+0

Я могу. Я хочу, чтобы он был «исправлен» в порт просмотра, но я также могу немного переместить его влево или вправо (перетаскивая), и если я его сброшу, он должен быть «исправлен» в новой позиции. – rafaello

+0

Я получаю одинаковое поведение в Chrome и FF: [здесь] (http://jsfiddle.net/s4dhW/1/) – sje397

ответ

6

не набор фиксированных в CSS: он работает в FireFox, хром, сафари, 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

чтобы увидеть это в действии http://jsfiddle.net/dX8N3/ – ZiTAL

+1

Nice! вы также можете использовать положение: исправлено; для инициализации с относительным положением и исправления первого прыжка перетаскивания http://jsfiddle.net/dX8N3/24/ – Wajih

1

Просто использовать в CSS:

#draggable{ 
    position:fixed !important; 
} 

Если вы используете как перетаскивать и rezisable удалить «важно!» с помощью CSS, а затем установите остановка вариант (обратный вызов, когда перетаскивание и изменение размера стопы) этой функции:

function stop(event){ 
    if(event.type === "resizestop"){ 
     var topOff = $(this).offset().top - $(window).scrollTop() 
     $(this).css("top",topOff) 
    } 
    $(this).css("position","fixed")  
} 
Смежные вопросы