2013-05-20 5 views
1

В этом примере Если я одушевляю div red, это делает странное движение вправо. Я думаю, проблема возникает только с Firefox, div прав, есть полоса прокрутки и фиксированная позиция.Firefox, фиксированное положение, полоса прокрутки

(Если я использую позицию абсолютной Решает движение. Но если прокрутка, то DIV двигается, и это должно быть «фиксированным» вправо, вниз)

  • Firefox
  • Right
  • прокрутки
  • Фиксированная позиция

Пожалуйста, проверьте его здесь: http://jsfiddle.net/LhAEh/1/

HTML:

<div id="blue"></div> 
<div id="red"></div> 

CSS:

#red { 
    position: fixed; /* fixed genera el problema */ 
    bottom: 20px; right:25px; 
    width:80px; height:50px; 
    cursor:pointer; 
    background:red; 
} 

#blue { 
    margin:0 auto; 
    width:80px; height:500px; 
    background:blue; 
} 

Jquery:

$(function(){ 
    $("#red").click(function() { 
     $("#red").animate({bottom:'-80px'},1000); 
    }); 
}) 

Original position After click

  • Изображение 1: Исходное положение
  • Изображение 2: Когда кто-то нажимает, он перемещается вправо, а затем вниз. Он должен только съезжает
+0

Можете ли вы предоставить скриншот проблемы, а также как вы хотите, чтобы она себя вела? Как я проверял в FireFox, IE10 и хром, но все три версии получают одинаковое поведение Div red, которое заставляет его упасть на клик. – Nitesh

+0

Когда вы нажимаете красный, он перемещается вправо, а затем идет вниз. (Я думаю, что он компенсирует полосу прокрутки). Он должен опускаться, не двигаясь вправо. Я проверяю его в Firefox 20.0. (Думаю, последний). Теперь я вижу это в старом Firefox 3.6 Этого не происходит. – Nrc

ответ

2

Похоже, обходной путь был найден, изменить положение фиксированного ящика для абсолютных и поместить его в другом фиксированном положении DIV: CSS fixed position movement under scrollbar in Firefox

Кроме того, есть открытая ошибка на этот вопрос: CSS position fixed no longer factors in scrollbar after hover

ОБНОВЛЕНИЕ: Лучшее обходное решение было найдено, используйте min-width вместо widt ч для фиксированной ячейки: https://stackoverflow.com/a/15705522/980692

+1

Оба решения очень хороши. Я не понимаю, почему min-width, но он работает !. Thank-you – Nrc

+0

@Nrc Спасибо http://memedad.com/meme/31211 – benkol

1

http://jsfiddle.net/CGkEU/2/

попробовать этот jsfiddle

.background{ 
    position:static; 
} 
+0

Это, кажется, работает @Nrc – shammelburg

+0

Это работает! Но я не понимаю, почему. Вы можете объяснить это, пожалуйста? – Nrc

+0

, потому что ваши div были на странице html, а не в контейнере «фон». страница с измененным размером получит вертикальную полосу прокрутки, которая затем подталкивает ваш div. в статическом контейнере полоса прокрутки не влияет на div. относительный контейнер будет перемещаться со строкой прокрутки – shammelburg

0

Это то, что вы ищете?

Demo

.background{ 
    position:relative; 
} 

$(function(){  
    $("#red").click(function() { 
     $("#red").animate({bottom:'15px'},1000); 
     $("#red").css({"position":"absolute","right":"15px"}); 
    });  
}) 
+0

В вашей демонстрации, красный прыжки. Я думаю, что позиция абсолютная ставит красный цвет в другое положение, чем фиксированное. Они не эквивалентны – Nrc

+0

Проверьте это .. http://jsfiddle.net/CGkEU/3/ –

+0

Сделайте экран меньше, чем #blue, и вы увидите, что он прыгает – Nrc