2014-02-20 3 views
9

У меня есть три области секционирования, и внутри них у меня есть элемент заголовка и дочерний элемент, который фиксирован положением.Позиция Фиксированная и обратная видимость

Как пользовательские свитки, я хочу, чтобы следующий раздел переходил к предыдущему разделу, включая его фиксированный ребенок.

У меня это работает в Chrome с помощью видимости отсев:

-webkit-backface-visibility: hidden;  
-moz-backface-visibility: hidden; 
-ms-backface-visibility: hidden;  
backface-visibility: hidden; 

Но в FF, неподвижные элементы больше не фиксированы. Взгляните на мой jsfiddle http://jsfiddle.net/7KjXm/5/

Ожидается ли такое поведение? Есть ли решение для перекрестного браузера? Или JS - путь?

Спасибо ....

+0

Вам нужно иметь фактический HTML-контент с фиксированной позицией? Или достаточно фонового изображения? – voithos

+4

[Это ошибка] (https://bugzilla.mozilla.org/show_bug.cgi?id=876341), я думаю, вам нужно будет обойти это. –

+1

Что делает видимость на заднем плане в зависимости от того, что вы хотите достичь здесь? –

ответ

6

мне удалось решить эффект, который вы искали. К сожалению, это не похоже на только css (yet).

Here - это мое решение, которое использует jquery и изменено css исходной страницы. Я переключился на цифры вместо цветных элементов и изменил размеры.

Мой Javascript для поддельных плавающих элементов (позволяет им быть скрыт, когда вид отдаляется):

$(function(){ 
    elem = $('.fixeditem'); 
    win = $(window); 
    wrap = $('<div>').css({ 
     width: elem.width(), 
     height: elem.height() 
    }); 
    elem.wrap(wrap); 
    win.scroll(function() { 
     elem.each(function(index, element){ 
      element = $(element); 
      var offset = element.parent().offset().top; 
      element.css('top', win.scrollTop() + 40 - offset); 
     }); 
    }); 
}); 

Моим заказ CSS для этого конкретного примера:

html, body{ 
    height: 100%; 
} 

.item { 
    min-height:100%; 
    background-color: white; 
    position: relative; 
    z-index: 1; 
    overflow: hidden; 
} 

.header { 
    position: relative; 
    background-color: green; 
    padding: 5px; 
    z-index: 2; 
} 

.fixeditem { 
    position: relative; 
    top: 10%; 
    left: 50%; 
    z-index: 0; 
} 

Цветного обновление кода : http://jsfiddle.net/8F2Zc/4/

Надеюсь, это поможет!

+0

Если вы хотите изменить расстояние, в котором находится объект, нажмите «40» в функции css на любое значение, которое вам нравится. Чтобы добавить процентные значения, вам также потребуется получить размер окна. –

+0

Спасибо Tyler! Это очень похоже на мое окончательное решение JS. Вычисление верхнего положения каждого фиксированного элемента при прокрутке пользователя. – mindwire22

+0

Добро пожаловать. Единственная проблема, с которой я столкнулся, заключается в том, что она кажется уродливой на моем планшете (я использовал хром). Надеюсь, что все еще работает на вас. –

Смежные вопросы