2013-09-05 2 views
0

모든 내용은 JsFiddle에 있습니다. div .global-wrapper 위/아래로 이동할 수 있기를 바랍니다. 두 컨테이너에서 fixedabsolute 위치를 사용하여 다양한 조합을 설정하려고했지만 전환하는 동안 포함 된 요소를 구조화하지 않으면 작업을 수행 할 수 없습니다.고정 요소와 절대 요소를 포함하는 블록을 수직으로 이동하는 방법

해결책은 자바 스크립트를 사용하여/아래로 3 개 요소 .top.middle.bottom을 이동할 수 있었다,하지만 난 그것이 가능하다면는 "단일 프로세스"에서 그들을 이동하는 것을 선호합니다.

HTML

<div class="global-wrapper"> 
    <div class="global-container"> 
     <div class="top">TOP</div> 
     <div class="middle"> 
      <div class="content">MIDDLE</div> 
     </div> 
     <div class="bottom">BOTTOM</div> 
    </div> 
</div> 

CSS

.global-wrapper { height: 500px; width: 700px; position: absolute; top: 0%; } 
.global-wrapper .global-container { height: 100%; width: 100%; position: fixed; } 
.global-wrapper .global-container .top { height: 20%; width: 100%; background-color:blue; position: fixed; top: 0px; } 
.global-wrapper .global-container .middle { height: 60%; width: 500%; overflow: hidden; background-color:green; position: absolute; top: 20%; } 
.global-wrapper .global-container .middle .content { height: 100%; width: 100%; position relative; } 
.global-wrapper .global-container .bottom { height: 20%; width: 100%; background-color:blue; position: fixed; bottom: 0%; } 

업데이트 :

이 구조는에 사실이 네비게이션 바있는 간단한 페이지 (하나, 약간의 설명을받을 권리가 위쪽과 아래쪽) 고정 된 자세로 (중간에 슬라이드가 있기 때문에 부모보다 더 큰 이유는 .middle div입니다).

전체 구조를 위아래로 움직일 수 있기를 원합니다 (버튼을 클릭 할 때 여기서는 중요하지 않습니다). 창 뒤에 부분을 숨기려면 (예를 들어, 내가 설정 한 경우) top: -15%.global-wrapper div으로 변경하면 전체 구조가 상위 브라우저 창 뒤에 15 %가 표시 될 것으로 예상됩니다.

+1

후 여기에 코드 바랍니다. – j08691

+0

@ j08691 완료 : – Ludo

+2

무엇을하려고하는지 정확히 알 수 없습니다. – Itay

답변

1

난 당신이 이런 식으로 뭔가를 찾고 같은데요 :

Working Example

.global-wrapper .global-container:hover { 
    transform:translatey(-150%); 
    transition: all 3s; 
} 
.global-wrapper .global-container { 
    height: 100%; 
    width: 100%; 
    position: fixed; 
    transition: all 3s; 
} 
+0

나는 효과를 찾고있었습니다 : '.global-wrapper .global-container { transform : translatey (-150 %); 전환 : 모두 3 초; }' 하지만 열쇠를 버리십시오, 감사합니다! – Ludo

+0

@ 루도가 내 첫 번째 이동 이었지만, 당신이 그렇게하고 싶어한다는 것이 이상하게 보였으므로, 나는 그것이 오도 된 의사 소통이라고 생각했고 나는 중간 div로 변형을 옮겼다 ... 미안하다. – apaul

+0

나는 나의 일하는 사건이 이해하기 쉽지 않았고 너는 나에게 희망적 이었음을 알았다! 'position' 것들을 가지고 놀 때 transfom 속성에 대해 1 초를 생각하지 않았습니다 ... 다시 한번 감사드립니다! – Ludo

0

다른 클래스와 자신이 모순됩니다. 고정 클래스는 고정 클래스입니다. 두 번째로 콘텐츠 div에서 모든 위치를 제거하고 부모 컨테이너 만 사용하는 것이 좋습니다.

고정 된 div의 부모 div를 변경하면 고정 된 컨테이너가 움직이지 않을 수 있습니다. 녹색 가운데 div가 움직이는 것을 볼 수 있습니다. 이것은 고정 위치를 가지고 있지 않습니다.

도움이 되었기를 바랍니다.

+0

내가 그렇게하면, 나는 mooving없이 왼쪽과 오른쪽으로 '.middle .content'를 슬라이드 할 수 없을 것이다. 상단 막대 (왼쪽/오른쪽), 나는 전체 화면 '너비'에 맞게 유지하고 싶습니다.'.middle .content '을 슬라이드 할 때도 그렇습니다. 틀렸어도'위치 : 고정 '이 도구입니다. – Ludo

+0

내가 아는 한 고정 된 div를 -15 % 이동하는 방법은 없습니다. 나는 다른 해결책이 있다고 확신하지만 왜 당신이 당신의 웹 사이트를 숨기고 싶어하는지 확실하지 않습니다. – user1641165

+0

우리가 어디에서 해결책을 찾아야할지 모르겠지만 더 높은 z- 인덱스로 보여주고 싶지 않은 비트를 다른 div overtop로 고정하는 것이 좋습니다. 그것은 불쾌하지만 문제를 빨리 해결합니다. – user1641165

관련 문제