2014-09-10 3 views
0

Я пытаюсь настроить эффект параллакса div внутри раздела страницы, проблема в том, что у меня сложное позиционирование, поэтому оно появляется только на родительском раздел (id 'foo' в коде ниже) страницы. Как я могу это сделать?Скрыть фиксированный позиционированный div (параллакс) под другими divs

HTML

<section> 
    <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.</p> 

</section> 

<article id="foo"> 
    <div id="parallax"></div> 
</article> 

<section> 
    <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.</p> 

</section> 

CSS

#parallax { 
    background: url('http://lorempixel.com/output/cats-q-c-220-129-8.jpg') transparent no-repeat; 
    width:100%; 
    height:200px; 
    z-index: 20; 
    right: -73%; 
    position: fixed; 
} 

article { 
    height: 200px; 
    background-color: aliceblue; 
} 

section { 
    background-color: black; 
    color: white; 
    padding: 1%; 
} 

JS

$(window).scroll(function(){ 

function parallax(){ 

if($(window).scrollTop() < $('#foo').offset().top){ 

var parallaxLayer = document.getElementById('parallax'); 
parallaxLayer.style.top = ((window.pageYOffset/4) - 400)+'px'; 
}else{ 

} 

} 
window.addEventListener("scroll", parallax, false); 
}); 

http://codepen.io/anon/pen/Ksahn

ответ

0

Демо:http://jsfiddle.net/fdg9du90/show/

Код:http://jsfiddle.net/fdg9du90/

var w=$(window), bg = $('.bg'); 

w.scroll(function(e){ 
    bg.css('top','-'+w.scrollTop()*.5+'px'); 
}); 

Объяснение:

Фоновое изображение/div задано как фиксированное, jquery используется для упрощения, потому что я имею в виду легко прикреплять событие, получать данные быстро и в правильной форме и т. Д. В режиме прокрутки в окнах выполняется прокрутка окна данных, а затем фоновый div перемещается на эту сумму.

0

Это то, что вы хотите сделали? Я переписал ваш код в кодефене. Надеюсь, это поможет. codepen.io/jaminpie/pen/Lnjtc

+0

Не совсем. Я хочу, чтобы div имел эту позицию (divs over и below overlapping), но я хочу, чтобы она прокручивалась с другой скоростью, чем окно (эффект параллакса). – user4027756

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